Как установить ограничения на размер загружаемых файлов в 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, определяющих максимальный размер загружаемых файлов. Таким образом вы всегда будете знать текущие ограничения.

Как отключить email-уведомления в WordPress без плагинов
06.03.2026
Как автоматизировать очистку базы данных WordPress
11.03.2026
Как использовать WP7 для автоматизации отчетности в WordPress
26.02.2026
Как создать и использовать REST API в WordPress
23.11.2025
Как создать собственный шорткод в WordPress
31.10.2025