Если вы столкнулись с тем, что WordPress не позволяет вам загрузить файл размером больше максимально допустимого, не переживайте. Максимальный размер загружаемых файлов в WordPress можно увеличить несколькими способами.
Максимальный размер файлов в WordPress может быть установлен на разных уровнях — на уровне конфигурации WordPress, на уровне конфигурации интерпретатора PHP, и даже на уровне веб-сервера.
Директива upload_max_filesize в php.ini
В конфигурационном файле php.ini с помощью директивы upload_max_filesize
установлен максимальный размер загружаемых файлов на сервер. Если у вас есть доступ к файлу php.ini на вашей хостинг-площадке, вы можете изменить это значение:
upload_max_filesize = 20M
Учтите, что в PHP так же установлен максимальный размер POST запросов с помощью директивы post_max_size
, который должен быть больше или равен максимальному размеру загружаемых файлов:
post_max_size = 20M
В зависимости от конфигурации сервера, новые значения могут вступить в силу сразу после внесения изменений, или же потребуется перезапустить веб-сервер или PHP интерпретатор.
Директивы PHP через .htaccess
Если у вас нет доступа к файлу конфигурации PHP, вы можете попробовать установить значения с помощью файла .htaccess веб-сервера Apache. Если вы работаете с Apache, то в корневой директории с вашим сайтом WordPress наверняка уже есть файл .htaccess, в который вы можете добавить следующие значения:
php_value upload_max_filesize 20M php_value post_max_size 20M
Изменения в файлы .htaccess как правило вступают в силу сразу после сохранения.
Директивы PHP через nginx.conf
Для веб-сервера nginx к сожалению нет возможности использовать файл .htaccess, но если вы ищите возможность изменять значения php.ini с помощью конфигурационного файла nginx, это делается через директиву fastcgi_param
(в случае если PHP настроен как FastCGI клиент):
fastcgi_param PHP_VALUE upload_max_filesize=20M; fastcgi_param PHP_VALUE post_max_size=20M;
Кстати в nginx есть директива client_max_body_size
, которая отвечает за максимальный размер данных передаваемых в HTTP запросах. Она тоже влияет на максимальный размер загружаемых файлов. Для вступления в силу изменений конфигурационного файла nginx, веб-сервер необходимо перезагрузить.
С помощью функции ini_set()
Директивы upload_max_filesize
и post_max_size
можно так же изменить с помощью PHP функции ini_set()
в файле wp-config.php или с помощью плагина, если это разрешено в настройке интерпретатора:
ini_set( 'upload_max_size' , '20M' ); ini_set( 'post_max_size', '20M');
Фильтр upload_size_limit
В WordPress есть специальный фильтр upload_size_limit
используемый в функции wp_max_upload_size()
. Этот фильтр отвечает за максимальный размер загружаемых файлов. Значение по умолчанию — наименьшее из upload_max_filesize
и post_max_size
из файла php.ini, и использовать данный фильтр, можно только в пределах этого значения.
Если вы увеличили размер загружаемых файлов описанными выше способами, а WordPress вам до сих пор показывает значение меньше чем выставленное, посмотрите на наличие плагинов, который могут использовать этот фильтр и деактивируйте их.
Кстати, вы можете использовать этот фильтр для того, чтобы уменьшить максимальный размер загружаемых файлов в небольшом собственном плагине:
function my_upload_size_limit( $limit ) { add_filter( 'upload_size_limit', 'my_upload_size_limit' ); return wp_convert_hr_to_bytes( '5M' ); }
Если вы испробовали все методы, но вам так и не удалось увеличить максимальный размер файлов в WordPress, советуем обратиться к вашему хостинг-провайдеру за помощью.