Как установить ограничение на размер файлов в WordPress при загрузке

Часто при работе с загрузкой файлов в WordPress возникает необходимость ограничить максимальный размер загружаемых файлов. Это важно для предотвращения перегрузки сервера, экономии места на диске и обеспечения безопасности сайта. В этой статье подробно разберём, как задать ограничения на размер файлов в WordPress на уровне PHP, сервера и плагинов, а также дадим практические примеры кода.

Почему важно ограничивать размер загружаемых файлов в WordPress

Без ограничений пользователи могут загружать очень большие файлы, что приведёт к следующим проблемам:

  • Перегрузка хостинга и превышение выделенного лимита памяти;
  • Замедление работы сайта из-за долгой обработки больших файлов;
  • Риск заполнения дискового пространства;
  • Увеличение времени бэкапа и сложности восстановления сайта.

Поэтому грамотная настройка ограничений — это обязательный элемент администрирования WordPress.

Как проверить текущий лимит загрузки файлов в WordPress

Для начала стоит узнать, какие максимальные значения уже установлены на вашем хостинге и в WordPress. Это можно сделать с помощью функции wp_max_upload_size() или через панель администратора.

Для вывода значения максимального размера файла в теме или плагине используйте следующий код:

function wpupload_show_max_upload_size() {
    echo 'Максимальный размер загрузки файла: ' . size_format(wp_max_upload_size());
}
add_action('admin_notices', 'wpupload_show_max_upload_size');

Этот код покажет в админке текущий лимит загрузки.

Как установить ограничение на размер файлов через PHP и .htaccess

Наиболее распространённые способы задать лимиты — через настройки PHP и конфигурацию сервера.

Настройка в файле php.ini

Откройте (или создайте) файл php.ini в корне сайта или в директории с WordPress и добавьте или измените параметры:

upload_max_filesize = 10M
post_max_size = 12M
memory_limit = 128M
max_execution_time = 300

Значение upload_max_filesize определяет максимальный размер загружаемого файла. post_max_size — максимальный размер данных POST-запроса, его нужно ставить больше или равным upload_max_filesize. memory_limit и max_execution_time регулируют выделение памяти и время выполнения скрипта, чтобы избежать обрывов при большой загрузке.

Настройка в .htaccess

Если вы не можете редактировать php.ini, попробуйте добавить в файл .htaccess в корне WordPress следующие строки:

php_value upload_max_filesize 10M
php_value post_max_size 12M
php_value memory_limit 128M
php_value max_execution_time 300

Учтите, что не все хостинги разрешают такие изменения через .htaccess.

Как ограничить размер файла с помощью хуков WordPress

Для дополнительного контроля и кастомных сообщений можно использовать фильтр wp_handle_upload_prefilter, который позволяет перехватить файл до загрузки и проверить его размер.

function wpupload_limit_file_size($file) {
    $max_size = 10485760; // 10 Мб в байтах
    if ($file['size'] > $max_size) {
        $file['error'] = 'Ошибка: размер файла превышает 10 Мб. Пожалуйста, выберите файл меньшего размера.';
    }
    return $file;
}
add_filter('wp_handle_upload_prefilter', 'wpupload_limit_file_size');

Этот код запрещает загрузку файлов больше 10 Мб и возвращает понятное сообщение об ошибке.

Использование плагинов для ограничения размера загрузки

Если не хочется править код вручную, можно использовать плагины. Вот несколько полезных вариантов:

  • WP Upload Restriction — простой и удобный плагин для ограничения по размеру и типам файлов.
  • Clearfy Pro — набор оптимизаций для WordPress, включая контроль загрузок, который позволяет тонко настраивать лимиты и фильтры.
  • WPGPT File Manager — расширенный менеджер файлов с возможностью ограничивать размеры и типы загружаемых файлов.

Все эти плагины можно найти и установить через официальный репозиторий или на wpshop.ru.

Как проверить и отладить ограничения на загрузку

После установки ограничений важно проверить, работают ли они корректно:

  • Попробуйте загрузить файл чуть больше установленного лимита — должно появиться предупреждение или ошибка;
  • Проверьте логи сервера и PHP на наличие ошибок, связанных с загрузкой;
  • Убедитесь, что ограничения не мешают загружать нужные файлы, например изображения для постов или темы.

Если загрузка не работает и вы видите ошибку «Превышен максимальный размер файла», значит нужно увеличить лимиты на сервере или через настройки WordPress.

Как программно получить и изменить максимальный размер загрузки в WordPress

Иногда полезно динамически получить и отобразить текущий лимит для пользователей. Для этого используйте функцию:

function wpupload_get_max_upload_size() {
    return wp_max_upload_size();
}

Для изменения лимита программно без правки php.ini можно использовать фильтр upload_size_limit:

function wpupload_custom_upload_size_limit($size) {
    return 10 * 1024 * 1024; // 10 Мб
}
add_filter('upload_size_limit', 'wpupload_custom_upload_size_limit');

Этот код устанавливает лимит загрузки в 10 мегабайт на уровне WordPress.

Заключение

Ограничение размера файлов в WordPress — важный аспект настройки сайта, который помогает избежать проблем с производительностью и безопасностью. Используйте комбинацию настроек PHP, хуков WordPress и, при необходимости, плагинов для гибкого и надёжного контроля загрузок.

Если хотите получить готовые решения и плагины для оптимизации управления загрузками, посетите wpshop.ru.

Как использовать WP Upload Dir для кэширования временных файлов в WordPress
18.02.2026
Как установить ограничение на размер файлов в WordPress при загрузке
10.01.2026
Как удалить загруженные файлы из WooCommerce после отмены заказа
07.05.2026
Как разделить загрузку и хранение файлов в WordPress для оптимизации и безопасности
13.01.2026
Как делать автоматические резервные копии файлов в WordPress
31.01.2026

wp upload - это директория в WP для загрузки файлов. Подробнее про загрузку файлов в админку можно почитать на этой странице.