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

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

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

Ограничение размера загружаемых файлов помогает избежать нескольких проблем:

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

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

Настройка лимита через php.ini и .htaccess

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

Изменение параметров в php.ini

Найдите в вашем php.ini следующие параметры и установите нужные значения (например, 10 мегабайт):

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

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

Настройка через .htaccess (если используется Apache)

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

php_value upload_max_filesize 10M
php_value post_max_size 10M
php_value memory_limit 128M

После изменений перезапустите сервер, чтобы они вступили в силу.

Как задать лимит размера файла через functions.php в теме или плагине

WordPress позволяет программно ограничивать размер загружаемых файлов с помощью фильтра upload_size_limit. Рассмотрим пример функции с префиксом wpin_, которая ограничит размер файла в 5 мегабайт.

function wpin_limit_upload_size($size) {
    // Максимальный размер файла в байтах (5 МБ)
    $max_size = 5 * 1024 * 1024;
    if ($size > $max_size) {
        $size = $max_size;
    }
    return $size;
}
add_filter('upload_size_limit', 'wpin_limit_upload_size');

Эта функция не только ограничит размер при загрузке через стандартный загрузчик WordPress, но и будет работать с большинством плагинов, использующих стандартные API загрузки.

Вывод сообщения об ошибке

Для улучшения UX рекомендуется выводить пользователю понятное сообщение при превышении лимита. Для этого можно использовать хук wp_handle_upload_prefilter:

function wpin_check_file_size($file) {
    $max_size = 5 * 1024 * 1024; // 5 МБ
    if ($file['size'] > $max_size) {
        $file['error'] = 'Ошибка: Максимальный размер файла - 5 МБ';
    }
    return $file;
}
add_filter('wp_handle_upload_prefilter', 'wpin_check_file_size');

Теперь при попытке загрузить слишком большой файл пользователь увидит информативное сообщение.

Использование плагинов для ограничения размера загружаемых файлов

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

Плагин WP Upload Size Limit

Простой и функциональный плагин для ограничения размера загружаемых файлов. Позволяет установить разные лимиты для ролей пользователей. Он отлично подходит для сайтов с разными уровнями доступа.

Clearfy Pro

Мощный оптимизационный плагин, который среди прочих функций позволяет контролировать загрузку файлов и уменьшать риски, связанные с большими файлами. Подробнее о Clearfy Pro можно узнать на официальной странице.

Особенности ограничения размера файлов для мультиязычных и мультисайтовых установок

Для WordPress Multisite лимит загрузки файла можно устанавливать индивидуально для каждого сайта через настройки сети. При этом важно помнить, что серверные ограничения (php.ini) действуют глобально и могут потребовать отдельной настройки для каждого субдомена или каталога.

Для мультиязычных сайтов, использующих плагины типа WPML или Polylang, лимит загрузки действует одинаково для всех языков, так как это серверная настройка. Если нужно ограничить загрузку по языковым ролям, это требует кастомной логики с использованием фильтров WordPress.

Тестирование и отладка ограничений загрузки файлов

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

Для отладки можно использовать функцию phpinfo(), чтобы проверить текущие значения параметров PHP:

function wpin_phpinfo() {
    if (current_user_can('administrator')) {
        phpinfo();
    }
}
add_action('admin_init', 'wpin_phpinfo');

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

Советы по оптимизации работы с загружаемыми файлами

  • Используйте оптимизированные форматы изображений и видео, чтобы уменьшить размер файлов без потери качества.
  • Регулярно очищайте медиабиблиотеку от неиспользуемых файлов с помощью плагинов типа Media Cleaner.
  • Настройте резервное копирование и мониторинг дискового пространства.
  • При необходимости ограничьте не только размер файла, но и типы загружаемых файлов, используя фильтр upload_mimes.

Таким образом, грамотное ограничение размера загружаемых файлов позволит сделать ваш WordPress сайт более стабильным, безопасным и удобным для пользователей.

Как создать многоуровневую пагинацию в WordPress с примерами кода
11.03.2026
Как использовать хуки в WordPress правильно: практическое руководство
14.11.2025
Как установить разные версии PHP для сайтов на WordPress на одном сервере
11.12.2025
Как удалить старые темы в WordPress без риска для сайта
13.04.2026
Оптимизация базы данных WordPress: лучшие практики и плагины
18.11.2025