Przed WP 3.9 miałem dwa następujące filtry zastosowane w 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');
więc menu rozwijane formatów akapitów pokazuje tylko p, h3 i h4, a menu rozwijane stylów niestandardowych pokazuje „Nagłówek brutto”, „Nagłówek klein” i tak dalej. Niestety, wp i tinymce nie przejmują się już od wp 3.9, teraz widzę tylko standardowe menu formatów akapitowych
oraz menu rozwijane formatu standardowych stylów:
Do tej pory nie znalazłem żadnych dokumentów na temat tego, czy jakieś haki zmieniły się wraz z aktualizacją do tinymce 4. Czy ktoś wie? Z pozdrowieniami Ralf
Aktualizacja: Ok na podstawie trochę więcej badań i komentarzy poniżej, chyba wymyśliłem:
//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
i dodać do niego menu „Klasy”. wordpress.stackexchange.com/questions/143689/…Odpowiedzi:
Jeśli zajrzysz do
class-wp-editor.php
środka, zobaczysz, że filtr, którego używasz, nadal tam jest, ale ustawienia są różne.Zgaduję, ale myślę, że musisz zmienić klucz tablicy, na który celujesz
formats
.EDYCJA Pozostawiając to na swoim miejscu, ale OP potwierdza, że nie robi tego, co próbuje.
Pamiętaj, że jest to całkowicie niesprawdzone, więc Twój przebieg może się różnić. (I nie używaj go na stronie produkcyjnej, dopóki go nie przetestujesz).
Kontynuacja
Głębsze kopanie formatów wydaje się być niestandardowym przyciskiem tinyMCE. Możesz zobaczyć, że
formatselect
przycisk został dodanymce_buttons_2
wclass-wp-editor.php
. A potem śledziłem to, abytinymce.js
:Mając to na uwadze, myślę, że nowym celem będzie 1. (najlepiej) zmiana
editor.settings.block_formats
lub 2. usunięcie tego przycisku poprzez filtrowaniemce_buttons_2
i dodawanie własnej wersji niestandardowej.Testowane i działające
Małe zastrzeżenie : Nie jestem pewien, gdzie dodać style dla samych rozwijanych elementów. W próbce TinyMCE opcja „Czerwony nagłówek” jest czerwona. Nie mogłem tego rozgryźć. Jeśli to zrobisz, daj mi znać.
źródło
block_formats
opcja nie może mieć końca; . Budowałem wartość z zapisanych konfigurowalnych opcji i miałem końcowy; to rozwaliło listę. Mam nadzieję, że kogoś to ocali.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';
. Wydaje mi się, że jest to zasadniczo to samo, co sugerował @Dalton, choć w bardziej wyraźny sposób. To po prostu ustawia wartości domyślne, zgodnie z dokumentacją