Ao chamar add_filter( 'image_size_names_choose', 'custom_image_sizes_choose' );
, use suas habilidades de investigação para ver como seria melhor chamar um if(thisweretrue) add_filter( 'image_size_names_choose', 'custom_image_sizes_choose' );
, pois não sei exatamente qual é sua situação específica.
Na verdade, consegui usar sua solução para configurar os tamanhos personalizados para ajudar com o que eu precisava. No meu cenário eu tinha uma caixa meta personalizada que eu criei e nesse metabox personalizado eu tenho um pedaço de um onclick javascript que é chamado que é o seguinte uploadimg_pt('mymetaboxfieldname');
. O Javascript que usei para obter a imagem da biblioteca de mídia é o seguinte:
function uploadimg_pt(pid) {
window.send_to_editor = function(html) {
imgurl = jQuery('img',html).attr('src');
jQuery('#'+pid).val(imgurl);
tb_remove();
}
formfield = jQuery('#'+pid).attr('name');
tb_show('', 'media-upload.php?type=image&pid='+pid+'&TB_iframe=true');
return false;
}
Ao usar este javascript, ele abre o gerenciador de mídia em um lightbox que gera um iframe. Em seguida, ele pega o pid no argumento da chamada de função e o coloca na URL ao gerar esse iframe. Nesse iframe que é gerado, ele também chamará o arquivo de funções no modelo. Então o que eu fiz foi definir uma declaração if no meu arquivo de funções assim:
if($_GET['pid'] == "mymetaboxfieldname"){
add_filter( 'image_size_names_choose', 'custom_image_size_large' );
}
function custom_image_size_large( $sizes ) {
$custom_sizes = array(
'large' => 'Large'
);
return $custom_sizes;
}
Como eu só precisava do tamanho grande, esse é o que voltei.
Eu não sei seu cenário exato, mas minha esperança é que isso ajude a descobrir o que você precisa no seu.