元々コメントは少ない当サイト。でもたまにはコメントを頂戴することもあるので、コメンテーターの利便性を考慮して、URLが書かれていたら自動的にハイパーリンクになるようにしてみました。
基本的には他サイトの受け売りなのですが、それだけではあまりにも芸がないので、WordPressへの実装方法を書くことにします。
参考にしたサイトは、「MUGEN NO TSUBASA PHP:URLを自動的にハイパーリンク設定。」です。元ネタは教えて! goo。具体的に書くと、
$proto = ereg_replace("(https?|ftp|news)(://[[:alnum:]+$;?.%,!#~*/:@&=_-]+)","<a href="\1\2" target="_blank">\1\2</a>",$proto);
という元ネタを、target="_blank"はXHTML1.0 strict的にダメなのでまずは削ります。先頭の$protoは$comment_contentに変更。尻の$protoは$comment_content_preに変更。これでフォームから送信されたcommentのデータがうまく後工程に流れてくれます。
これをwp-comments-post.phpに入れます。39行目あたりの$comment_content = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;を$comment_content_pre = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;に変更。その次の行に先ほど加工したモノを入れるとこんな感じになります。
$comment_content_pre = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;
$comment_content = ereg_replace("(https?|ftp|news)(://[[:alnum:]+$;?.%,!#~*/:@&=_-]+)","<a href="\1\2">\1\2</a>",$comment_content_pre);
となります。これでOK!
この投稿へのコメントの RSS フィード。 トラックバックURI : http://susu.cc/2009/01/wordpresscomments-autourl.html/trackback
自動ハイパーリンクのテスト。
http://susu.cc/
いかがですか。
あら、別にコレ実装しなくても元々URLをハイパーリンクにしてくれる? みたいです。
今日はじめて気づいた…。
[...] 参考:WordPressコメント欄URLを自動的にハイパーリンクにする。 | 煤式自動連結器: [...]