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

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

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

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

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

Поэтому правильно настроенные ограничения — залог стабильной работы сайта.

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

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

<?php
function wptalk_get_upload_max_filesize() {
    return ini_get('upload_max_filesize');
}
$max_upload = wptalk_get_upload_max_filesize();
echo 'Максимальный размер загружаемого файла: ' . $max_upload;
?>

Этот код показывает значение из PHP-конфигурации. Также стоит проверить post_max_size и memory_limit, так как они влияют на загрузку файлов.

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

Самый надёжный способ — изменить настройки PHP на сервере. В разных средах это делается по-разному:

Изменение через php.ini

Если у вас есть доступ к файлу php.ini, найдите и измените параметры:

upload_max_filesize = 16M
post_max_size = 20M
memory_limit = 128M

После изменения перезапустите веб-сервер.

Изменение через .htaccess

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

php_value upload_max_filesize 16M
php_value post_max_size 20M
php_value memory_limit 128M

Обратите внимание, что этот метод работает только при использовании Apache с поддержкой PHP как модуля.

Изменение через functions.php

Иногда можно попытаться задать значения в теме через functions.php, но это работает не всегда:

ini_set('upload_max_filesize', '16M');
ini_set('post_max_size', '20M');
ini_set('memory_limit', '128M');

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

Ограничение размера файла через плагины WordPress

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

Плагин WPUploadLimit

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

  • Перейдите в Настройки > WPUploadLimit;
  • Установите ограничения по ролям;
  • Плагин автоматически проверит размер файла при загрузке и выдаст ошибку, если файл слишком большой.

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

Плагин Clearfy Pro для оптимизации загрузок

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

Как запретить загрузку файлов определённого размера программно

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

function wptalk_limit_upload_size_filter( $file ) {
    $max_size = 10485760; // 10 МБ в байтах
    if ( $file['size'] > $max_size ) {
        $file['error'] = 'Ошибка: размер файла не должен превышать 10 МБ.';
    }
    return $file;
}
add_filter( 'wp_handle_upload_prefilter', 'wptalk_limit_upload_size_filter' );

Этот код автоматически блокирует загрузку файлов больше 10 МБ и выдаёт понятное сообщение об ошибке.

Дополнительные советы по работе с загрузкой файлов в WordPress

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

Если вы хотите ограничивать типы файлов и размер одновременно, используйте плагин WP File Upload или расширяйте приведённый выше фильтр.

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

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

function wptalk_custom_upload_filter( $file ) {
    $allowed_types = array('image/jpeg', 'image/png', 'application/pdf');
    $max_size = 5242880; // 5 МБ

    if ( ! in_array( $file['type'], $allowed_types ) ) {
        $file['error'] = 'Ошибка: загрузка этого типа файлов запрещена.';
    } elseif ( $file['size'] > $max_size ) {
        $file['error'] = 'Ошибка: размер файла не должен превышать 5 МБ.';
    }
    return $file;
}
add_filter( 'wp_handle_upload_prefilter', 'wptalk_custom_upload_filter' );

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

Выводы

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

Удаление неиспользуемых CSS и JS в WordPress для ускорения загрузки
23.12.2025
Как удалить повторяющиеся посты в WordPress с помощью кода
02.04.2026
Как установить ограничения на размер загружаемых файлов в WordPress
25.02.2026
Как отладить и решить ошибки Fatal Error в WordPress
25.01.2026
Как создать собственный тип записи (Custom Post Type) в WordPress
07.02.2026