Antes do WP 3.9, eu tinha os dois filtros a seguir aplicados no functions.php:
function my_mce_buttons_2( $buttons ) {
array_unshift( $buttons, 'styleselect' );
return $buttons;
}
add_filter('mce_buttons_2', 'my_mce_buttons_2');
function mce_mod( $init ) {
$init['theme_advanced_blockformats'] = 'p,h3,h4';
$init['theme_advanced_styles'] = "Header gross=mus-bi news-single-bighead; Header klein=mus-bi news-single-smallhead; Link=news-single-link; List Items=news-single-list";
return $init;
}
add_filter('tiny_mce_before_init', 'mce_mod');
para que a lista suspensa de formatos de parágrafo mostre apenas p, h3 e h4, enquanto a lista suspensa de estilos personalizados mostra "Cabeçalho bruto", "Cabeçalho Klein" e assim por diante. Mas, infelizmente, o wp e o tinymce não se incomodam mais desde o wp 3.9. Agora só vejo o formato padrão dos parágrafos suspenso
bem como o menu suspenso de estilos de estilos padrão:
Até agora, não encontrei nenhum documento sobre se algum gancho mudou com a atualização para tinymce 4. Alguém sabe? Atenciosamente Ralf
Atualização: Ok, com base em um pouco mais de pesquisa e nos comentários abaixo, acho que descobri as coisas:
//Creating the style selector stayed the same
function my_mce_buttons( $buttons ) {
array_unshift( $buttons, 'styleselect' );
return $buttons;
}
add_filter('mce_buttons', 'my_mce_buttons');
function mce_mod( $init ) {
//theme_advanced_blockformats seems deprecated - instead the hook from Helgas post did the trick
$init['block_formats'] = "Paragraph=p; Heading 3=h3; Heading 4=h4";
//$init['style_formats'] doesn't work - instead you have to use tinymce style selectors
$style_formats = array(
array(
'title' => 'Header 3',
'classes' => 'mus-bi news-single-bighead'
),
array(
'title' => 'Header 4',
'classes' => 'mus-bi news-single-smallhead'
),
array(
'title' => 'Link',
'block' => 'a',
'classes' => 'news-single-link',
'wrapper' => true
)
);
$init['style_formats'] = json_encode( $style_formats );
return $init;
}
add_filter('tiny_mce_before_init', 'mce_mod');
style_select
e adicionar um menu "Classes". wordpress.stackexchange.com/questions/143689/…Respostas:
Se você procurar,
class-wp-editor.php
verá que o filtro que você está usando ainda está lá, no entanto, as configurações são diferentes.Estou supondo, mas acho que você precisa alterar a chave da matriz para a qual está alvejando
formats
.EDIT Deixando isso em vigor, mas o OP confirma que isso não faz o que ele está tentando.
Lembre-se de que isso não é totalmente testado, portanto sua milhagem pode variar. (E não use em um site de produção até testá-lo).
Continuando em diante
Indo mais fundo, os formatos parecem ser um botão tinyMCE personalizado. Você pode ver que o
formatselect
botão foi adicionadomce_buttons_2
noclass-wp-editor.php
. E então eu rastreei isso paratinymce.js
:Com isso em mente, acho que o novo destino seria 1. (idealmente) alterar o
editor.settings.block_formats
ou 2. remover esse botão filtrandomce_buttons_2
e adicionando sua própria versão personalizada.Testado e funcionando
Advertência pequena : não sei onde adicionar os estilos para os itens suspensos. No exemplo TinyMCE, a opção "Red Headline" é vermelha. Eu não conseguia descobrir isso. Se você fizer, por favor, conte para mim.
fonte
block_formats
opção não pode ter um final; . Eu estava criando o valor a partir de opções configuráveis salvas e tinha um final; que borked a lista. Espero que isso salve alguém por alguns minutos.array( 'title' => 'Red text', 'inline' => 'span', 'styles' => array( 'color' => '#ff0000' ) ),
?unset($init['preview_styles']);
$init['preview_styles'] = 'font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow';
. Eu acho que isso é essencialmente o mesmo que o @ Dalton sugeriu, embora de uma maneira mais explícita. Isso simplesmente define os valores padrão, como por tmce documentação