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

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

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

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

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

Далее разберем способы реализации таких ограничений.

Ограничение размера загружаемых файлов через functions.php

WordPress по умолчанию использует настройки PHP на сервере, но можно добавить дополнительный контроль через код темы. Например, чтобы ограничить размер загружаемого файла до 2 МБ, добавьте следующий код в functions.php вашей темы:

function wpstart_limit_upload_size( $file ) {
    $max_size = 2 * 1024 * 1024; // 2 МБ в байтах
    if ( $file['size'] > $max_size ) {
        $file['error'] = 'Размер файла не должен превышать 2 МБ.';
    }
    return $file;
}
add_filter( 'wp_handle_upload_prefilter', 'wpstart_limit_upload_size' );

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

Ограничение типов файлов для загрузки

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

function wpstart_restrict_mime_types( $mimes ) {
    return array(
        'jpg|jpeg|jpe' => 'image/jpeg',
        'png'          => 'image/png',
        'gif'          => 'image/gif',
        'pdf'          => 'application/pdf'
    );
}
add_filter( 'upload_mimes', 'wpstart_restrict_mime_types' );

Этот код заменяет стандартный список разрешённых типов на более узкий.

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

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

function wpstart_limit_files_count() {
    if ( ! empty( $_FILES['async-upload'] ) && count( $_FILES['async-upload']['name'] ) > 5 ) {
        wp_die( 'Максимальное количество загружаемых файлов за раз — 5.' );
    }
}
add_action( 'admin_post_upload_attachment', 'wpstart_limit_files_count' );

Этот код ограничит загрузку более чем 5 файлов одновременно в стандартной админ-панели.

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

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

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

Эти плагины облегчают задачу без необходимости глубоких знаний программирования.

Практические рекомендации по настройке ограничений загрузки

При настройке ограничений учитывайте следующие моменты:

  • Баланс между удобством и безопасностью: слишком жёсткие ограничения могут отпугнуть пользователей, а слишком мягкие — привести к проблемам с безопасностью.
  • Проверяйте настройки PHP: параметры upload_max_filesize и post_max_size в php.ini должны соответствовать вашим ограничениям WordPress.
  • Тестируйте загрузку: после внесения изменений обязательно проверьте, что ограничения работают корректно и не мешают легитимным загрузкам.

Заключение

Установка ограничений на загрузку файлов в WordPress — важный аспект управления сайтом, который помогает поддерживать безопасность и производительность. Используйте приведённые примеры кода для тонкой настройки или выбирайте готовые плагины из магазина WPShop для более простого решения.

Как добавить автоматические оповещения в WordPress с помощью WPCommunity
19.02.2026
WooCommerce: автоматическое изменение стоимости товара при выборе способа доставки
15.05.2026
Как сделать автоматический logout пользователей в WordPress
07.01.2026
Как изменить авторские права в WordPress без кода
22.01.2026
Как создать собственный виджет для WordPress: пошаговое руководство
14.11.2025