Intereting Posts
Разрешить вкладчику редактировать собственные сообщения после публикации, без плагина Наличие серии страниц, созданных на основе записей в таблице с полями, заполняющими страницы Вывод массива значений meta term на пользовательской вкладке WooCommerce? Сообщение мета-флажка из WordPress иногда не проверяется удалить неиспользованный постмета Задайте значение настраиваемого поля при публикации или обновлении публикации Как удалить ссылку «читать дальше» из выписки пользовательского типа сообщения Ранжирование виджетов, отображаемых на боковой панели удалить все созданные сообщения Различные шаблоны для категорий родителей и детей / таксономии Как загрузить последний скрипт jQuery? мета-поле настраиваемого поля с выпадающим списком / автозаполнением Как WordPress вычисляет глубину страницы? Добавление javascript в заголовок темы MetroMagazine WordPress выбирает неправильную базу данных

Как увеличить размер загрузки только при редактировании специальных страниц?

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

function my_edit_page_form( $post ) { if( my_is_special_page( $post ) ) { add_filter( 'upload_size_limit', 'my_upload_size_limit' ); } } add_action( 'edit_page_form', 'my_edit_page_form' ); function my_upload_size_limit( $size ) { return 1024 * 18000; } 

На одной из этих страниц у меня есть короткий код галереи. Когда я нажимаю кнопку «Редактировать», сообщение «Максимальная загрузка» выглядит правильно, но при загрузке отказано:

Максимальный размер загружаемого файла: 18 МБ, но 13 МБ test.jpg превышает максимальный размер загружаемого файла для этого сайта.

При просмотре источника я вижу, что max_file_size равен 8388608b, по умолчанию для сайта. Это значение происходит из wp_plupload_default_settings . Это означает, что эта функция должна быть вызвана до edit_page_form .

Итак, если я не могу использовать edit_page_form , что я могу использовать вместо этого, wp_plupload_default_settings перед wp_plupload_default_settings , чтобы проверить почту? Или, в качестве альтернативы, следует ли проверять почту из upload_size_limit ? Если да, то как мне это сделать?

— ОБНОВИТЬ —

Вот мой последний код:

 function my_upload_size_limit( $size ) { global $post; if ( $post && $post->filter == 'edit' && $post->post_type == 'page' && my_is_special_page( $post ) ) { $size = 1024 * 18000; } return $size; } add_filter( 'upload_size_limit', 'my_upload_size_limit' ); 

Я думаю, что вы на правильном пути с идеей проверить, просматривается ли правильная страница в upload_size_limit прикрепленном к upload_size_limit .

Этот код демонстрирует изменение размера загрузки, если просматривается одна из специальных страниц, и возврат стандартного максимального размера загрузки в противном случае:

 function wpse239631_change_upload_size( $u_bytes, $p_bytes ) { // Array of post IDs where the upload size will be changed. $special_pages = array( 1829, // change to your page 1800, // change to your page, etc ); // If we're on a special page, change the upload size, // otherwise, use the default max upload size. if ( in_array( get_the_ID(), $special_pages ) ) { return 1024 * 18000; } else { return min( $u_bytes, $p_bytes ); } } add_filter( 'upload_size_limit', 'wpse239631_change_upload_size', 10, 2 );