comment_author_link に target指定してゲストのURLを別窓で開く

おちです。

コメント欄の設計って結構迷いますよね。設置しててもなかなか書き込まれないし、かといって無くすのも不親切な気がして。そこで、メインページにリンクだけ張っといて別ウィンドウで開くようにしようと思ったら意外な情報が引っかかりました。

コメント欄に書き込まれたURLには target 指定がつかない

記事中で外部サイトにリンクするとき、話の動線を切らないように target=”_blank” 指定している人は多いと思います。でも、コメント欄に書き込まれたURLからはページ遷移しちゃうんですね。スパム対策に rel=”nofollow” がついてるのは知ってたけどターゲット指定までは気にしてませんでした。

おち研の感想はほとんどTwitter経由で頂いてるので、コメント欄には滅多に書き込まれないんですけど折角だから対応しておくことにします。

コメント書き込みのリンクをポップアップウィンドウで開くコード

comment_author_url にフィルタを追加する

例によって function.php を書き換えます。バックアップをお忘れなく。

【function.php】
// add target_new to Guest author URL
function comment_author_link_window() {
global $comment;
$url = get_comment_author_url();
$author = get_comment_author();

if ( empty( $url ) || 'http://' == $url )
$return = $author;
else
$return = "<a href='$url' rel='external nofollow' target='_blank'>$author</a>";
return $return;
}
add_filter('get_comment_author_link', 'comment_author_link_window');

参考:make link to comment author open in new window?

参考にしたフォーラムでは最後のリターンを apply_filters() で処理してたんですが、うまく動かなかったので少し書き換えてます。あと「 function.php いじるからバックアップしろ」とか言っといて何ですけど、コメント呼び出しの前に記述すればちゃんと実行されます。そのへんの管理方法は好みの問題なので自分が判りやすいところに書いて下さい。

まとめ

本来やりたかった設計について調べてたら今回の件がやたらと出てきたんですけど、これってそんなに需要がある仕様なんですか? しかも comment-template.php を直接書き換える方法ばかりで二度びっくり…を通り越してポカーンだよ。(゜Д゜)

…というか、もったいぶってコード書かずに情報商材とセットでダウンロードさせようとする人もいて何だかなぁ…って思った次第であります。

ちなみに本来やりたかった件については使えそうなテンプレートタグを見つけたので、そのうち試して組めたらまた書きますね。

それではまた!