僕が運営しているCocoonサイトでは、フォーラムで問い合わせ対応を行っています。
このフォーラム運営には、高機能フォーラムプラグインのwpForoを利用しています。
このwpForoプラグインで書き込みを行った際、通常投稿ユーザー情報は以下のように表示されます。
ユーザー情報部分にサイト情報は表示されません。
サイト情報を見たい場合は、名前をクリックして投稿者ページを開けば「ウェブサイト」からサイトへ移動することはできます(※サイト登録をしている人の場合)。
けれどいちいち、投稿者情報ページを開いてウェブサイトリンクを踏むのは面倒です。
なので、直接書き込みページから以下のように、サイトを開けるように出来ないかとwpForoソースコードを調べてみました。
そしたら、投稿者情報を表示関数部分に、良いフックがあったので、カスタマイズコードを書いてみました。
目次
wpForo投稿者情報にサイトリンクを追加する方法
投稿者情報にサイトへのリンクを追加するには、以下の手順を行ってください。
functions.phpにコードを追加
子テーマのfunctions.phpなどに以下のようにコピペします。
//wpForoのタイトル変更(サイトリンクの追加) add_filter('wpforo_member_title', 'wpforo_member_title_custom', 10, 2); function wpforo_member_title_custom($title_html, $member){ if (preg_match('{<span class="wpf-member-title(.+?)"[^>]+?>.+?</span>}i', $title_html, $m)) { if ($m[0] && !empty($member['site'])) { $member_title_tag = $m[0]; $member_site_tag = '<span class="wpf-member-site'.$m[1].'"><a href="'.$member['site'].'" class="wpf-member-site-link" target="_blank" rel="nofollow noopener">サイト</a></span>'; $title_html = str_replace($member_title_tag, $member_title_tag.$member_site_tag, $title_html); } } return $title_html; }
やっていることを簡単に説明すると、wpforo_member_titleをフックして、正規表現でメンバーの肩書きタグを探し出して、その下にサイトリンクを追加し返却しているだけです。
style.cssに追記
あとはスタイルを整えるため、子テーマの、style.cssに以下のように追記すればOKです。
/*wpForo用のサイトリンクスタイル*/ .wpf-member-site{ display: block !important; margin: 2px auto !important; } #wpforo-wrap .wpf-member-site-link{ color: blue !important; text-decoration: underline !important; font-size: 14px !important; } /* Font Awesomeを使用する場合はコメントを外す #wpforo-wrap .wpf-member-site-link::before{ font-family: FontAwesome; content: '\f015'; } */ #wpforo-wrap .wpf-member-site-link:hover{ color: red !important; }
Font Awesomeを使用している(もしくはプラグインで設定してある)サイトであれば、Font Awesome部分のコメントを外せば、以下のように表示されます。
まとめ
このようにカスタマイズすることで、フォーラムで活発に活動されたり、自分の代わりに質問に答えてくれる方に、多少なりともサイトへの流入者を送ることができます。
今回のカスタマイズで以下のような利点はあるかと思います。
- 管理者側:助けてくれる方にアクセスを流す。
- 投稿者側:多く書き込むことでそれだけ露出が増え流入が増える可能性がある。
良いサイクルに入れば、フォーラムも活性化してお互いにwin-winの関係になるのではないかと思います。
また、投稿者がサイトを公開しているかも分かりやすくなるので(いちいち詳細ページを開く必要がないので)個人的には便利です。