Posted on Nov 10, 2009 at 02:50
DMSGuestbookというWordPressの掲示板プラグインを使用していますが、
標準ではコメント投稿時にURLがハイパーリンクに変換されないようなので以下の方法で対処しました。
1.ハイパーリンクの識別
まず、ハイパーリンクを識別する方法ですが、これは以下のサイトにそのものずばりなコードが載っているのでそのまま流用します。
参考:URLを自動的にハイパーリンク設定 – 教えて!goo:
$proto = ereg_replace("(https?|ftp|news)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)","\\1\\2",$proto);
2.DMSGuestbookプラグインのテンプレートファイルを編集
次にDMSGuestbookプラグインのディレクトリ内の[dmsguestbook/template/post/deafault.tpl]ファイルをコピーして適当に[deafault2.tpl]とでもリネームします。
リネームした deafault2.tpl を開き、33行目あたりに以下のコードを記述します。
$message_text = ereg_replace("(https?|ftp|news)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)","\\1\\2",$message_text);
3.編集したファイルをサーバにアップロード後適用する
編集したテンプレートファイルは上書き保存後、サーバにアップロードします。アップロード後、WordPress管理画面からDMSGuestbookのオプション画面を開き、[Guestbook settings]-[Extended]の「Post template」項目にアップロードした deafault2.tpl を指定し、保存します。
上手く行けばDMSGuestbookに投稿したURL(原則http://から始まる)がハイパーリンクになります。
また、DMSGuestbookとは直接関係ないですが、以下のサイトも参考にしました。
参考:WordPressコメント欄URLを自動的にハイパーリンクにする。 | 煤式自動連結器:
最初はちょっと勘違いしていて、上記のサイトを参考にcomment_postをhookとするプラグインを作ってたのですが、よく考えたらDMSGuestbookはプラグインで、コメントを投稿してもcomment_postが働くわけないことに気付きました。
しょうがないので、テーマファイルをいじって掲示板を作り直そうかとも考えましたが、DMSGuestbookのファイルを除いてみたら簡単に修正できるようになってたので助かりました。
プラグインの作り方もなんとなくわかったので、近いうちに何か作ってみたいですね。