Antes de WP 3.9 tenía los siguientes dos filtros aplicados en 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 el menú desplegable de formatos de párrafo solo muestre p, h3 y h4, mientras que el menú desplegable de estilos personalizados muestra "Encabezado bruto", "Encabezado klein", etc. Pero desafortunadamente wp y tinymce ya no molestan desde wp 3.9, solo veo el menú desplegable de formatos de párrafo estándar ahora
así como el menú desplegable de formato de estilos estándar:
Hasta ahora no he encontrado ningún documento sobre si algún gancho ha cambiado con la actualización a tinymce 4. ¿Alguien sabe? Saludos cordiales Ralf
Actualización: Ok, basado en un poco más de investigación y los comentarios a continuación, supongo que he resuelto las cosas:
//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
y agregarle un menú de "Clases". wordpress.stackexchange.com/questions/143689/…Respuestas:
Si observa
class-wp-editor.php
, encontrará que el filtro que está utilizando todavía está allí, sin embargo, la configuración es diferente.Supongo, pero creo que debe cambiar la clave de matriz a la que apunta
formats
.EDITAR Dejando esto en su lugar, pero el OP confirma que esto no hace lo que está intentando.
Tenga en cuenta que esto no se ha probado por completo, por lo que su kilometraje puede variar. (Y no lo use en un sitio de producción hasta que lo haya probado).
Continuando hacia adelante
Profundizar en los formatos parece ser un botón personalizado de tinyMCE. Puede ver que
formatselect
se agrega el botónmce_buttons_2
enclass-wp-editor.php
. Y luego lo rastreé hastatinymce.js
:Con eso en mente, creo que el nuevo objetivo sería 1. (idealmente) cambiar
editor.settings.block_formats
o 2. eliminar ese botón filtrandomce_buttons_2
y agregando su propia versión personalizada.Probado y funcionando
Pequeña advertencia : no estoy seguro de dónde agregar los estilos para los elementos desplegables. En la muestra TinyMCE, la opción "Titular rojo" es roja. No pude resolver esto. Si lo haces, por favor, házmelo saber.
fuente
block_formats
opción no puede tener un final; . Estaba construyendo el valor de las opciones configurables guardadas y tenía un seguimiento; eso borró la lista. Espero que ahorre a alguien unos 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';
. Supongo que esto es esencialmente lo mismo que @Dalton sugirió, aunque de una manera más explícita. Esto simplemente establece los valores predeterminados, según la documentación de