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

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

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

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

  • Заполнению дискового пространства на хостинге;
  • Сбоям загрузки файлов при превышении допустимого размера;
  • Негативному влиянию на производительность сайта;
  • Безопасностным рискам, если пользователи пытаются загрузить слишком большие или вредоносные файлы.

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

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

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

Максимальный размер файла для загрузки: 8 МБ.

Также можно посмотреть текущие значения PHP-параметров, создав файл phpinfo.php с содержимым:

<?php phpinfo(); ?>

Или вывести значения программно в functions.php темы:

function wpdemo_show_upload_limits() {
    echo 'upload_max_filesize: ' . ini_get('upload_max_filesize') . '<br>';
    echo 'post_max_size: ' . ini_get('post_max_size') . '<br>';
    echo 'memory_limit: ' . ini_get('memory_limit') . '<br>';
}
add_action('admin_notices', 'wpdemo_show_upload_limits');

Это поможет понять, какой лимит установлен на сервере и в WordPress.

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

1. Изменение настроек PHP на сервере

Самый эффективный способ — изменить значения параметров upload_max_filesize и post_max_size в файле php.ini или через панель управления хостингом.

Например, в php.ini:

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

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

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

php_value upload_max_filesize 5M
php_value post_max_size 5M

Однако на некоторых хостингах такой метод запрещён.

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

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

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

Этот код стоит добавить в файл functions.php активной темы или в свой плагин. Он ограничит максимальный размер файла до 2 МБ, даже если на сервере стоит большее значение.

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

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

  • WP Upload Restriction — простой плагин для ограничения максимального размера и типов загружаемых файлов.
  • File Upload Types by WPForms — позволяет ограничивать размер и расширения файлов, если используете формы WPForms.
  • Clearfy Pro — плагин с набором оптимизаций, в том числе ограничением загрузок. Подробнее на wpshop.ru.

Дополнительные меры контроля загрузок в WordPress

Ограничение типов файлов

Кроме размера, важно ограничивать типы загружаемых файлов. По умолчанию WordPress запрещает загрузку опасных форматов, но можно дополнительно настроить разрешённые типы через фильтр upload_mimes:

function wpdemo_custom_mime_types($mimes) {
    // Разрешаем только изображения и PDF
    return array(
        'jpg|jpeg|jpe' => 'image/jpeg',
        'png' => 'image/png',
        'gif' => 'image/gif',
        'pdf' => 'application/pdf',
    );
}
add_filter('upload_mimes', 'wpdemo_custom_mime_types');

Проверка размера файла на стороне клиента

Для лучшего UX стоит проверить размер файла ещё на стороне браузера с помощью JavaScript. Например, если вы используете кастомную форму загрузки, добавьте такой скрипт:

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

Как избежать ошибок при загрузке больших файлов

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

  • Настройки upload_max_filesize и post_max_size в PHP;
  • Ограничения, выставленные в WordPress (через фильтр upload_size_limit или плагины);
  • Ограничения на стороне клиента (JavaScript);
  • Настройки сервера — например, nginx или Apache могут иметь свои лимиты;
  • Проверьте и увеличьте при необходимости лимиты памяти memory_limit и времени выполнения скрипта max_execution_time.

Пример комплексного решения ограничения размера загрузки в WordPress

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

function wpdemo_validate_upload_size_and_type($file) {
    $max_size = 2 * 1024 * 1024; // 2 МБ
    $allowed_types = array('image/jpeg', 'image/png', 'application/pdf');

    if ($file['size'] > $max_size) {
        return array('error' => 'Файл слишком большой. Максимальный размер — 2 МБ.');
    }

    if (!in_array($file['type'], $allowed_types)) {
        return array('error' => 'Недопустимый тип файла. Разрешены только JPEG, PNG и PDF.');
    }

    return $file;
}
add_filter('wp_handle_upload_prefilter', 'wpdemo_validate_upload_size_and_type');

Этот код можно добавить в functions.php. Он проверит загружаемый файл и выдаст ошибку, если файл не подходит по размеру или типу.

Заключение

Ограничение размера загружаемых файлов — важный момент для стабильной и безопасной работы сайта на WordPress. Выбор метода зависит от ваших возможностей доступа к серверу, задач и удобства. Для большинства пользователей достаточно изменить настройки PHP и добавить фильтр в functions.php или использовать специализированные плагины.

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

Как установить ограничение на количество постов в выводах WordPress
04.02.2026
WooCommerce: автоматическое изменение статуса заказа при отсутствии платежа
14.05.2026
Как удалить переходы по ссылкам в WordPress без плагинов
19.03.2026
Как изменить и добавить дополнительные поля в форму регистрации WordPress
07.04.2026
Как использовать WooCommerce REST API для управления заказами в WordPress
25.12.2025