一部のWordpressマニアを除けば、Gutenbergとかどうでもいいよって思っている人がほとんどだと思います。
Classicエディタのサポート期限が事実上なくなったのもあって、Classicエディタを使い続けている人は一定数残ることでしょう。
先日、クラシックエディタで作られたサイトのテーマを変更したら、記事のレイアウトが崩れました。原因はエディタによってHTMLが自動整形されてしまったためです。
問題となった記述と整形後
整形前
pタグの中で<br>タグが連続していたら、複数のpタグに分割されてしまった。
<p>
あああああ<br/>
<br/>
<br/>
</p>
整形後
<p>
あああああ<br/>
</p>
<p>
<br/>
</p>
この動きを制御するのは、TinyMCE Advancedのオプションでも対応できません。
余計な整形をやめるカスタマイズ
以下のコードをfunctions.phpに追加することで、予想の斜め上の動きを止めることができます。
add_action('init', function() {
remove_filter('the_title', 'wptexturize');
remove_filter('the_content', 'wptexturize');
remove_filter('the_excerpt', 'wptexturize');
remove_filter('the_title', 'wpautop');
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
remove_filter('the_editor_content', 'wp_richedit_pre');
});
add_filter('tiny_mce_before_init', function($init) {
$init['wpautop'] = false;
$init['apply_source_formatting'] = ture;
return $init;
});
まとめ
Classicエディタでは定期的に、
①ビジュアルモード ⇔ テキストモードの切り替えで保存データからタグが消える問題
②記事を表示する時にタグが消えてしまう問題
が起きます。
今回のケースは後者の問題の対応になります。