WordPressで、「& → & #038; 」に自動変換されるのを防ぐ方法 【アンパーサンド】

  • 投稿 : 2013-12-02
  • 更新 : 2016-12-31

解決方法

テーマのfunctions.phpに以下のようなコードを追加する

function my_replace_amp($content) {
	return str_replace('&', '&', $content);
}
add_filter('the_content', 'my_replace_amp');

自動変換されたものを、再度もとに戻すということをしてるようです。
アンパーサンドの場合は、wptexturize、convert_charsの両方で処理されているのと、アンパーサンドだけ自動変換を停止させるのが難しい?ため、再変換(文字列置換)するという方法が手堅いようです。

「& → &」に置換しなおしてるだけですね。

参考:
WordPressの自動変換機能の停止の仕方いろいろ(& → & 変換など) : WordPressをインストールしてみた
WordPress › フォーラム » WordPressが&を&に変換してしまう。

どんなケースで困ったことになるの?

・PV計測用に、画像タグを記事内に埋め込む
・画像タグのURLの中に、&が入っている

ここまでだと、困ったことにならないんですが、記事投稿確認とかで上記のタグが含まれているか自動確認するようなシステムがあったとします。この時に、「&」と「&」は(HTMLでは)同一のものなので 、同一だと判断すべき?なのに、そうしないで、エラーとかにしているケースです。

文字実体参照一覧
HTML文字実体参照&数値文字参照一覧

上記の場合は、対応してもらえるようにお願いメールしておくのがよいかと思います。

スポンサーリンク