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

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

Причины и задачи ограничения размера файлов

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

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

Часто хостинг накладывает свои лимиты, но для контроля и улучшения UX полезно задать ограничения на уровне WordPress.

Ограничения на стороне сервера и WordPress

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

  • upload_max_filesize — максимально допустимый размер файла для загрузки в PHP.
  • post_max_size — максимальный объем данных, принимаемых через POST-запрос.
  • max_execution_time и max_input_time — время выполнения скриптов PHP.

Эти параметры задаются в php.ini, и изменить их можно через файл .htaccess, php.ini или настройки хостинга.

Для проверки текущих значений можно создать PHP-файл с phpinfo(); или использовать плагины типа Health Check & Troubleshooting.

Установка ограничения размера файла через functions.php

WordPress позволяет задать ограничение на размер загружаемых файлов через фильтр upload_size_limit. Ниже пример кода, который ограничит загрузку файлов до 2 МБ:

function wptemp_upload_size_limit($size) {
    return 2 * 1024 * 1024; // 2 мегабайта
}
add_filter('upload_size_limit', 'wptemp_upload_size_limit');

Добавьте этот код в файл functions.php активной темы или в плагин для пользовательских функций.

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

Ограничение загрузки в форме с помощью JavaScript

Чтобы улучшить UX, можно добавить проверку размера файлов на стороне клиента, не дожидаясь загрузки. Пример простого скрипта для ограничения в 2 МБ:

document.addEventListener('DOMContentLoaded', function() {
  const fileInput = document.querySelector('input[type=file]');
  if (!fileInput) return;

  fileInput.addEventListener('change', function() {
    const maxSize = 2 * 1024 * 1024; // 2 МБ
    for (const file of fileInput.files) {
      if (file.size > maxSize) {
        alert('Файл "' + file.name + '" слишком большой. Максимум 2 МБ.');
        fileInput.value = '';
        break;
      }
    }
  });
});

Этот код можно добавить в footer.php или в подключаемый JS файл темы.

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

Если вы предпочитаете готовые решения, обратите внимание на плагины:

  • WP Upload Restriction — позволяет устанавливать ограничения по размеру и типу файлов для разных ролей пользователей.
  • Restrict Media Library Access — дополнительно ограничивает доступ к медиафайлам и их загрузку.
  • Clearfy Pro — комплексный плагин оптимизации и безопасности, включает функции ограничения загрузки и управления ресурсами. Подробнее на https://wpshop.ru/plugins/clearfy-pro/.

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

Изменение настроек PHP через .htaccess или php.ini

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

php_value upload_max_filesize 2M
php_value post_max_size 2M
php_value max_execution_time 300
php_value max_input_time 300

Или в php.ini:

upload_max_filesize = 2M
post_max_size = 2M
max_execution_time = 300
max_input_time = 300

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

Практические советы и рекомендации

1. Всегда проверяйте, что ограничения PHP не меньше, чем заданные в WordPress, иначе загрузка будет невозможна.

2. Обязательно добавляйте проверку размера файлов на стороне клиента для удобства пользователей.

3. Если используете сторонние плагины загрузки (например, формы с загрузкой файлов), настройте ограничения в них отдельно.

4. Тестируйте загрузку файлов разных размеров и форматов после внесения изменений.

5. Для комплексной оптимизации и безопасности сайта рассмотрите использование Clearfy Pro, который поможет управлять множеством настроек.

Успешное использование временных таблиц в WordPress: практические советы и примеры
06.01.2026
Оптимизация WooCommerce: как автоматически удалять старые статусы заказов через функции
13.05.2026
Как эффективно использовать wp_enqueue_style и wp_enqueue_script в WordPress
26.03.2026
Как удалить и оптимизировать базу данных WooCommerce без плагинов
04.05.2026
Как настроить безопасные AJAX-запросы в WordPress
07.03.2026