Wordpress3.9にアップデートしたら、TinyMCEのカスタマイズが無効になった
Wordpressを3.9にアップデートしたら、tinyMCEに組み込んでいたカスタマイズが使えなくなった。編集画面に自作クラスのプルダウンメニューを追加していたのが、消えてしまっている。非表示になっただけかな?と、あれこれ探したけれど、本当に消えたっぽい。
従来はfunction.phpに以下のようなコードを足すと、自作クラスを投稿記事に追加できるプルダウンメニューが出来ていた。
function my_tiny_mce_before_init( $init_array ) { //自作クラスをプルダウンメニューで追加 $init_array['theme_advanced_styles'] = "参照リンク(左寄)=reference;参照リンク(右寄)=reference2;アロー=inline_arrow;"; return $init_array; } add_filter( 'tiny_mce_before_init', 'my_tiny_mce_before_init' );
同様の事案がないかググると、Wordpress3.9へのアップグレードと同時にTinyMCEが4.x系になり、その仕様変更で、カスタマイズが無効になったということらしい。
参考:
上記参考そのままに、以下で解決。
function my_tiny_mce_before_init( $init_array ) { //書式プルダウンメニューのカスタマイズ $init_array['block_formats'] = '段落=p;見出し3=h3;見出し4=h4;見出し5=h5;見出し6=h6'; //自作クラスをプルダウンメニューで追加 $style_formats = array ( array( 'title' => '参照リンク(左寄)', 'block' => 'p', 'classes' => 'reference' ), array( 'title' => '参照リンク(右寄)', 'block' => 'p', 'classes' => 'reference2' ), array( 'title' => 'アロー', 'inline' => 'a', 'classes' => 'inline_arrow' ) ); $init_array['style_formats'] = json_encode( $style_formats ); $init['style_formats_merge'] = false; return $init_array; } add_filter( 'tiny_mce_before_init', 'my_tiny_mce_before_init' );
要素の種類まで、きっちり指定するように変わっている。今までのアバウトな指定でもそれなりに使えていたけど、曖昧さを嫌っての変更?