投稿者権限のユーザーでログインして投稿するとき、本文中に「<
」や「"
」などの特殊記号を書くと「<
」や「"
」のようにエスケープ(変換)されてしまいます。
これら記号はHTMLを崩すことがあるため、投稿者権限ユーザーに許可してしまうと一種のセキュリティホールになるのでエスケープして無害化されることは好ましいのですが、普通に表示したいケースもあります。
原因は権限の違い
管理者ユーザーでログインしている時はエスケープされないため原因は権限周りだろうと推測し調べたところ、実際その通りだと分かったため権限設定で対応するよう進めました。
https://www.mirucon.com/2017/07/11/the-complex-wordpress-escaping/
プラグインで対応
ロールごとに権限を細かく設定できるプラグイン「 User Role Editor 」を使います。
- 「 User Role Editor 」をインストール
- 「 ユーザー > User Role Editor 」を開く
- 「 登録者 (author) 」の権限を選ぶ
- 「 unfiltered_html 」をチェックして更新
以上で投稿者権限でもエスケープされずHTMLを書けるようになりました。