WordPress 抜粋のダブルクォーテーションのエスケープ

このエントリーをはてなブックマークに追加

以前のエントリー『WordPress 抜粋のHTMLタグを削除方法』で、抜粋を meta の discription に表示する設定を入れていたのですが、HTMLのタグは削除されるようになったのですが、文中にダブルクォーテーションなどがはいっていると、そのまま表示されてしまい、metaがそこで途切れてしまうという問題がでてきました。

解決するため、もう一つエスケープ処理を入れることにしました。

WordPress 標準の関数 esc_attr()

WordPress には標準の関数としてエスケープ処理をしてくれるものが幾つかあるのですが、そのうち今回はダブルクォーテーションが含まれる esc_attr() を利用しました。

Function Reference/esc attr « WordPress Codex

これを利用すると < > & " ' がエスケープ・・・実体参照 に変換してくれます。

meta discription 部分

mb_substr(esc_attr(str_replace(array("\r\n", "\r", "\n"), '', strip_tags(get_the_excerpt()))), 0, 100)