WordPressの記事投稿や固定ページなどで、テキストモード(HTML編集)ではbrタグがあったのにビジュアル編集モードに切り替え後に再度テキストモードに戻すと、brタグはすべて消えてしまう。
基本的なWordPressの仕様なので、自動的に削除されないような設定が必要ですが、多くは以下の2つの対処法になるようです。
1.プラグイン導入
2.function.phpに追記
回避策としては、上記のどちらかになるでしょう。プラグインをインストールいろいろとリスクが高くなるので、今回はfunction.phpに追記していく方法を採用してみました。
remove_filter(‘the_content’, ‘wpautop’);
remove_filter(‘the_excerpt’, ‘wpautop’);
ところが、採用しているテーマの影響か、ほかの記述の影響か、やはりテキストとHTMLのタブの切り替えを行うとbrタグは消えてしまうようでした。
これらは、WordPressもともとのオートフォーマット機能によるもので、ビジュアルモードはブロックエディタ型の入力インターフェースなので、リターンキーを押したりすると自動でPタグなどに囲まれたり、BRタグが追記されるあれですね。
なので、テキストモードで編集したタグをビジュアルモードで表示させてからもとに戻すと、オートフォーマット対応の各種タグは一時的に非表示にされます。
そのまま更新しなければ対象タグは消えないのですが、ビジュアルモードで更新、またはビジュアルモードからテキストモードに戻して更新すると、BRタグやPタグなどのCSS指定のないタグは一括して自動消去されてしまいます。
あまり煩雑な設定をすると、全体に不測の影響がでてしまうのでHTMLマークアップレベルで対応することにしました。
1.BRタグを使用せずPタグなどの段落タグにクラス指定して段落行を指定する
2.BRタグに空のクラス指定(class=””)をする
レスポンシブ対応などでどうしてもBR改行をしたい場合は、brタグに暮らす指定することで対応できました。
以前のHTML型式で<BR />という方法もあるということでしたが、私が試した環境ではやはり自動消去されたので、上の2つの組み合わせで対処しました。
あとはユーザー管理でビジュアルモードをオフ設定にして、ビジュアルエディタを使用できないようにしてしまうのが良いでしょう。
ただ、記事投稿の場合にブログ形式で登録できなくなるので、サイト設計上最適な方法で対処するのがいいではないでしょうかね。
めでたし