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

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

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

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

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

Поэтому настройка лимита — важный шаг для стабильной работы сайта.

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

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

  1. Перейдите в админку WordPress: Медиа - Добавить новый — рядом с формой будет указано максимальное разрешённое значение.
  2. Используйте PHP функцию wp_max_upload_size() в теме или плагине, чтобы вывести текущий лимит.

Например, добавьте в файл functions.php вашей темы следующий код для вывода лимита в админке:

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

После обновления страницы в админке вы увидите уведомление с текущим лимитом.

Метод 1: Изменение настроек PHP для ограничения размера загружаемых файлов

Лимиты загрузки файлов устанавливаются на уровне PHP через параметры в php.ini или файлах конфигурации веб-сервера. Основные параметры:

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

Пример установки лимитов в php.ini:

upload_max_filesize = 8M
post_max_size = 10M
memory_limit = 128M

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

php_value upload_max_filesize 8M
php_value post_max_size 10M

Или в wp-config.php добавить:

@ini_set('upload_max_filesize', '8M');
@ini_set('post_max_size', '10M');

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

Метод 2: Ограничение загрузки файлов через фильтр WordPress upload_size_limit

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

Пример функции в functions.php:

function wphost_limit_upload_size($size) {
    // Ограничиваем загрузку до 5 МБ
    $max_size = 5 * 1024 * 1024; // 5 МБ в байтах
    if ($size > $max_size) {
        return $max_size;
    }
    return $size;
}
add_filter('upload_size_limit', 'wphost_limit_upload_size');

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

Пример ограничения по роли пользователя

function wphost_limit_upload_size_by_role($size) {
    if (current_user_can('author')) {
        // Для авторов ограничение 2 МБ
        return 2 * 1024 * 1024;
    }
    return $size;
}
add_filter('upload_size_limit', 'wphost_limit_upload_size_by_role');

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

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

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

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

Метод 4: Проверка размера загружаемого файла на стороне клиента с помощью JavaScript

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

Пример скрипта для проверки размера файла (5 МБ):

document.getElementById('file-input').addEventListener('change', function() {
    var file = this.files[0];
    if (file.size > 5 * 1024 * 1024) { // 5 МБ
        alert('Файл слишком большой. Максимальный размер 5 МБ.');
        this.value = '';
    }
});

Этот код нужно добавить в шаблон формы загрузки, заменив file-input на ID вашего поля.

Как интегрировать ограничение загрузки с плагином Clearfy Pro

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

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

Итоги и рекомендации

Оптимальный подход — сначала проверить и при необходимости увеличить серверные лимиты PHP, затем использовать фильтр WordPress для ограничения загрузки на уровне CMS. Для удобства и гибкости можно подключить плагин, например, WP Upload Restriction или Clearfy Pro.

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

По вопросам корректной настройки и выбора плагина можно обращаться к документации и поддержке на wpshop.ru.

Как изменить адрес авторской страницы в WordPress без плагинов
20.12.2025
Как удалить сложный кеш WooCommerce без плагинов
06.06.2026
Как установить защиту от brute force атак в WordPress с помощью .htaccess
07.04.2026
Как использовать PHPMailer в WordPress для отправки писем
04.03.2026
Как изменить уникальные usermeta в WordPress без плагинов
18.03.2026