現象としてpタグ、brタグが消える
以前から気になっていたことなんですが、Wordpress管理画面で記事を書いている時に、pタグを入れて書いていたのですが、管理画面で下書き保存をしたり、テキスト画面からビジュアル画面に遷移した後にテキスト画面に戻ると、pタグが消えてしまっていることがありました。
またbrタグも同様のことがありました。どうやら僕だけの話ではないようです。これって一般的というか、Wordpressを使っている人ならば既知のことのようです。
どうもpタグやbrタグだけではない
またpタグやbrタグだけではなく、spanタグも消えてしまうようで、今回はそれも合わせて対応をしようと思います。
もっと調べてみるとかなりたくさんあるみたいです
ただ調べていけば行くほど、いろんなタグが勝手に消失するようです。なんかpタグやbrタグはごく一部のようです。
サイトをみていると、styleタグも消えてしまうようです。
また、自動でpタグが発生することも
これはビジュアルエディタ側の問題だそうですが、改行をたくさん(2行)すると、改行した分だけ、pタグが挿入されるそうです。
またビジュアルエディタで文章を書いた後に、テキストエディタに戻ると、書いた内容にpタグで囲まれるという現象があるそうです。
ただ、僕の環境ではちょっと違う現象が起こっている
そうなんです。僕の環境ではちょっと違う状況になっています。具体的にはこうです。- テキストエディタがでPタグやbrタグを書いた後に、ビジュアルエディタに移ると、pタグやbrタグは消える。
- ビジュアルエディタで書いた後に、テキストエディタに戻っても、pタグは表示されない。
- ビジュアルエディタで改行をすると、改行した分だけ、
が表示される。
なぜか理解ができない
考えられることとしては、Stinger8には、エディタに対してfunctions.phpの中に記載しているソースがあるようです。
でも今の僕では、どのソースがどういった役割をしているのか、なんの処理をしているのかがわかりません。ということで結論としては、やっぱりよくわかりませんとなりました。
対応はどうするのか
とはいえ、pタグやbrタグが消えてしまうのはどうしても避けたい。せっかくつけたタグは、ビジュアルエディタからテキストエディタに戻してもついていて欲しいので、とにかく、タグが消えないようにするということだけを主眼において、対応をすることにしました。
対応としてはプラグインが主流
この現象についてはプラグインで対応をするみたいです。そのプラグインとは、TinyMCE Advancedです。

でも、このTinyMCE Advancedでも改善しないケースもあるようです。なので、今回は、直接ソースコードを書き込むことにしました。
で、サイトを調べてみました。
簡単にプラグインで対応したくないというのが僕の今のWordpressを利用する上での方針ですので、なんとか内部のファイルのコードを変更することで対応できないかなと調べてみるとやっぱりありました。とても親切な方です。公開してくれていました。
pタグやbrタグ自動挿入と勝手に消されるのをやめさせる
pタグや、brタグ以外のタグが消えてしまうのをやめさせる

functions.phpに追記する
では、コードをご紹介します。今回のコードの表示はGitHubのgistで表示させています。
pタグや、brタグ以外のタグが消えてしまうのをやめさせるコード
pタグやbrタグが勝手に消されるのをやめさせるコード
最後に
これで、テキストエディタで書いたタグが消えるという現象はなくなりました。よかったです。ただ、ビジュアルエディタで書いた文字列にpタグが囲われてしまう状況は変わっていません。これについては今後も継続して調べていこうと思います。
コメント
[…] wordpressはHTML生成時に自動でpタグを追加したり、ソースに手書きで追加したpタグを自動的に削除したりしてるから必ず条件を満たさないとは言い切れない。 WordPressでpタグやbrタグが消える現象を解決する […]
[…] こちらのページでの説明は、見やすい感じでした。 WordPressでpタグやbrタグが消える現象を解決する […]