Vor WP 3.9 hatte ich die folgenden zwei Filter in der functions.php angewendet:
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');
so dass das Dropdown-Menü für Absatzformate nur p, h3 und h4 anzeigt, während das Dropdown-Menü für benutzerdefinierte Stile "Header brutto", "Header klein" usw. anzeigt. Aber leider stören wp und tinymce seit wp 3.9 nicht mehr, ich sehe jetzt nur die Dropdown-Liste der Standard-Absatzformate
sowie das Dropdown-Format für Standardformate:
Bisher habe ich keine Dokumente darüber gefunden, ob sich mit dem Update auf Tinymce 4 irgendwelche Hooks geändert haben. Weiß jemand Bescheid? Viele Grüße Ralf
Update: Ok, basierend auf etwas mehr Recherche und den Kommentaren unten, ich denke, ich habe die Dinge herausgefunden:
//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
und ein Menü "Klassen" hinzufügen können. wordpress.stackexchange.com/questions/143689/…Antworten:
Wenn Sie nachsehen, werden
class-wp-editor.php
Sie feststellen, dass der von Ihnen verwendete Filter noch vorhanden ist, die Einstellungen jedoch unterschiedlich sind.Ich vermute, aber ich denke, Sie müssen den Array-Schlüssel ändern, auf den Sie abzielen
formats
.BEARBEITEN Belassen Sie dies an Ort und Stelle, aber das OP bestätigt, dass dies nicht das tut, was er versucht.
Denken Sie daran, dass dies völlig ungetestet ist, sodass Ihr Kilometerstand variieren kann. (Und nicht auf einer Produktionsstätte verwenden, bis Sie es getestet haben).
Weiter geht es
Wenn Sie tiefer in die Formate graben, scheinen Sie eine benutzerdefinierte tinyMCE-Schaltfläche zu sein. Sie können sehen, dass die
formatselect
Schaltflächemce_buttons_2
in der hinzugefügt wirdclass-wp-editor.php
. Und dann verfolgte ich das zutinymce.js
:Vor diesem Hintergrund denke ich, dass das neue Ziel darin besteht, 1. (idealerweise) die
editor.settings.block_formats
Schaltfläche oder 2. zu ändern,mce_buttons_2
indem Sie diese Schaltfläche filtern und Ihre eigene benutzerdefinierte Version hinzufügen.Getestet und funktionsfähig
Kleine Einschränkung : Ich bin nicht sicher, wo ich die Stile für die Dropdown-Elemente selbst hinzufügen soll. Im TinyMCE-Beispiel ist die Option "Rote Überschrift" rot. Ich konnte das nicht herausfinden. Wenn ja, lassen Sie es mich bitte wissen.
quelle
block_formats
Option kein Trailing haben kann. . Ich habe den Wert aus gespeicherten konfigurierbaren Optionen erstellt und hatte ein Trailing. das hat die Liste verdorben. Hoffe das spart jemandem ein paar Minuten.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';
. Ich denke, dies ist im Wesentlichen dasselbe wie von @Dalton vorgeschlagen, wenn auch expliziter. Dies setzt einfach die Standardwerte gemäß tmce Dokumentation