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

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

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

Ограничение размера файла помогает:

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

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

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

Первый и самый эффективный способ — изменить параметры PHP на сервере. Для этого нужно найти или создать файл php.ini в корне сайта или в директории с WordPress и добавить или изменить следующие параметры:

upload_max_filesize = 5M
post_max_size = 6M
memory_limit = 128M

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

После внесения изменений необходимо перезапустить веб-сервер или PHP-FPM, чтобы настройки вступили в силу. Проверить текущие значения можно с помощью файла phpinfo(); или плагина, например, Debug Info.

Использование .htaccess для ограничения размера файла

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

php_value upload_max_filesize 5M
php_value post_max_size 6M

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

Ограничение загрузки через functions.php темы

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

function wp7ru_limit_upload_size( $file ) {
    $size_limit = 5 * 1024 * 1024; // 5 МБ в байтах
    if ( $file['size'] > $size_limit ) {
        $file['error'] = 'Ошибка: размер файла превышает допустимый лимит в 5 МБ.';
    }
    return $file;
}
add_filter( 'wp_handle_upload_prefilter', 'wp7ru_limit_upload_size' );

Добавьте этот код в файл functions.php вашей активной темы или в отдельный плагин. Теперь при попытке загрузить файл больше 5 МБ пользователь увидит ошибку.

Разбор кода

Функция wp7ru_limit_upload_size принимает массив $file с информацией о загружаемом файле. Мы проверяем его размер и если он больше 5 МБ, добавляем ошибку в поле error. Хук wp_handle_upload_prefilter позволяет вмешаться в процесс загрузки до сохранения файла.

Контроль размера файлов в контактных формах

Если вы используете формы, например, с плагином WP Pro Forms или WPForms, то у большинства из них есть встроенные настройки ограничения размера файлов. Но можно усилить защиту и контролировать это дополнительным кодом.

Пример для WPForms, где мы дополнительно проверяем размер загружаемого файла через хук:

function wp7ru_wpforms_file_size_limit( $errors, $field_id, $file ) {
    $max_size = 5 * 1024 * 1024; // 5 МБ
    if ( $file['size'] > $max_size ) {
        $errors[] = 'Файл слишком большой. Максимальный размер — 5 МБ.';
    }
    return $errors;
}
add_filter( 'wpforms_process_file_upload_errors', 'wp7ru_wpforms_file_size_limit', 10, 3 );

Дополнительные советы и рекомендации

Чтобы полностью контролировать загрузку, рекомендуем:

  • Проверять настройки PHP через phpinfo() или плагины;
  • Использовать фильтры WordPress для проверки размеров и форматов файлов;
  • Оповещать пользователей понятными сообщениями об ошибках;
  • Если используете плагин WP7, например, WPGPT или Clearfy Pro, изучите их возможности по контролю загрузок и безопасности.

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

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

function wp7ru_get_max_upload_size() {
    $max_upload = (int)( ini_get( 'upload_max_filesize' ) );
    $max_post = (int)( ini_get( 'post_max_size' ) );
    $memory_limit = (int)( ini_get( 'memory_limit' ) );

    return min( $max_upload, $max_post, $memory_limit ) . 'M';
}

echo 'Максимальный размер загружаемого файла: ' . wp7ru_get_max_upload_size();

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

Как удалить или заблокировать плагин WordPress правильно
08.11.2025
Как создать многоязычный сайт на WordPress без плагинов
18.12.2025
Как отключить email-уведомления в WordPress без плагинов
06.03.2026
Как использовать WP7 AJAX для реального времени обновления данных в WordPress
27.01.2026
WordPress: как создать собственный виджет с примером кода
27.11.2025