トップWordpress> Wordpressのコメント内htmlを無効にしつつ自動でリンクを貼る方法

Wordpressのコメント内htmlを無効にしつつ自動でリンクを貼る方法

Wordpress wordpress

160828ten

ひさびさWordpressネタ。備忘録。長いので閉じ。

Wordpressのコメント欄にてしばしば、(>_<)という顔文字で囲まれた間の文章が消えるという問題が発生。<…>の中身がhtmlタグとして認識されるために起こる現象である。例:

2016年8月27日 23:35

はじめてかきこみします(>_<)

いつも楽しみにしています(>_<)

ところで…

顔文字の一部がhtmlタグとして認識されており、間の文章は実際には表示されない(※青字部分)。管理画面からも確認ができない。

これに対する解決法。

フィルターフックでhtmlタグを取り除く。

add_filter( 'comment_text',     'escape_tags', 9);
add_filter( 'comment_text_rss', 'escape_tags', 9);
add_filter( 'comment_excerpt',  'escape_tags', 9);
function escape_tags( $comment_content ) {
    if ( get_comment_type() == 'comment' ) {
        $comment_content = htmlspecialchars($comment_content, ENT_QUOTES);
    }
    return $comment_content;
}

こうすると>&gt;に置き換わり、その他リンクを始め一切のタグは無効化される。

ただ、このままだと少々問題がある。

urlを含むコメントの場合、Wordpressのコメント内容に対するオートリンク(自動でaタグを付加する)機能により、以下のような状態になってしまう。

(書き込み内容)

http://www.yahoo.co.jp

(反映)

<a href=”http://www.yahoo.co.jp”>http://www.yahoo.co.jp</a>

自動でタグ丸出しの状態に。見栄えが良くない。

これに対し、オートリンクを無効にするには以下をfunction.phpに追記する。

remove_filter('comment_text', 'make_clickable', 9);

これでリンクタグが付加されず、書き込み内容のurlのまま反映される形になる。

ただし、やはりリンクはクリックできたほうがユーザビリティが良いと思うので、最終的には以下のかたちに。

remove_filter('comment_text', 'make_clickable', 9);
add_filter( 'comment_text',     'escape_tags', 9);
add_filter( 'comment_text_rss', 'escape_tags', 9);
add_filter( 'comment_excerpt',  'escape_tags', 9);
function escape_tags( $comment_content ) {
    if ( get_comment_type() == 'comment' ) {
        $comment_content = htmlspecialchars($comment_content, ENT_QUOTES);
    }
    return $comment_content;
}
add_filter('comment_text', 'make_clickable', 9);

一度オートリンクを無効にし、コメント内容のhtmlを無効にした後で再度オートリンクのフィルターを追加している。

これ何かもっとスマートなやり方はないものか…htmlspecialcharsとフィルターフックのプライオリティー後で要勉強…

(>_<)

ちなみに上記顔文字が文字化けのようになってしまうという問題は未解決のまま⇒(&gt;__&lt;)

こういうたぶん基本的なところがぱっとわからないのって、基礎を学んでいない&実務で使ってないせいだとおもう…またなあなあで忘れてしまわないよう備忘録兼ねて。

ついでに絵のこと

脳の生理的欲求に伴って描く絵がいちばんいい絵(※自分にとっての)

そいで、自分でもなんでこうなったかわからんくらい「おっ」てなるものが引き出された絵が最高にいい絵。たぶん脳の化学反応でなる。

いい落書きを沢山つづけると良い絵描きになれる予感。

あとfc2はパスワード変更をしつこくせまったり変更後に最近使用したパスワードを使えなくしたりするのをやめるべき。以上。

関連記事