Como aumentar o tamanho do upload apenas quando edito páginas especiais?

Eu tenho o seguinte código para aumentar o tamanho do upload apenas quando editado determinadas páginas especiais:

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; } 

Em uma dessas páginas, eu tenho um shortcode da Galeria. Quando eu clico no botão Editar, a mensagem “Carregamento máximo” parece correta, mas o upload é negado:

Tamanho máximo do arquivo de upload: 18 MB - mas 13 MB test.jpg excede o tamanho máximo de upload para este site.

Ao visualizar a fonte, vejo que o conjunto max_file_size é 8388608b, o padrão para o site. Esse valor vem de wp_plupload_default_settings . Isso significa que esta function deve ser chamada antes do gancho edit_page_form .

Então, se eu não puder usar edit_page_form , o que posso usar em vez disso, será chamado antes wp_plupload_default_settings para verificar a postagem? Ou, alternativamente, devo verificar a publicação dentro do upload_size_limit ? Se sim para o último, então, como faço isso?

– UPDATE –

Aqui está o meu código final:

 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' ); 

Solutions Collecting From Web of "Como aumentar o tamanho do upload apenas quando edito páginas especiais?"

Eu acho que você está no caminho certo com sua idéia de verificar se a página certa está sendo visualizada dentro do retorno de chamada anexado ao hook upload_size_limit .

Este código demonstra a alteração do tamanho do upload se uma das páginas especiais estiver sendo visualizada e retornando o tamanho de upload máximo padrão de outra forma:

 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 );