以前のエントリー『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)