bbpressのメールアドレス任意やログイン機能の設定方法
WordPressサイトに本格的な掲示板を設置できるプラグインがbbpressです。
システムやデザインをカスタマイズすれば2chやガールズちゃんねる、発言小町のような掲示板も作成可能です。
海外ではbbpressは盛んで、一日数千~1万PV程度あるサイトも良くあります。最近は国内でも徐々に人気が出てきています。
前回はbbpressの基本的な使い方や設定方法を解説しました。今回はより細かい部分までカスタマイズして本格的な掲示板を運営できるように解説します。
カスタマイズ
メールアドレスや名前を必須から任意にする方法
ユーザー登録せずに誰でも投稿できる掲示板の場合は、トピックにコメントを投稿する際にメールアドレスや名前が必須になっています。
特にメールアドレスを必須記入するのは書き込み率が下がります。わざわざ個人情報を記入してまで、投稿したいと思う人も少ないためです。実際にメールアドレスを任意にすれば、コメント率は2倍には上がります。但し、bbpressの設定項目には必須を任意に変えるシステムはありません。自分でカスタマイズする必要があります。
任意にする方法は3種類あります。
- functions.phpで必須を任意にできるようにコードを記述して、CSSで入力欄を非表示にする方法
- bbpressのフォルダにある「includes」から直接編集削除する方法
- 自作プラグインで設定する方法
どちらを使うかは自分に合う方法を選んでください。
functions.phpとCSSで設定
メールアドレスを必須から任意に変えます。functions.phpに次のコードを記述します。
1 2 3 4 5 6 |
//メールアドレスを任意 function bbp_no_email($arg) { $arg['bbp_anonymous_email'] = ''; return $arg; } add_filter('bbp_pre_anonymous_post_author_email', 'bbp_no_email'); |
これで、メールアドレスは必須から任意になりました。
次は名前を任意にするコードです。メールアドレスはともかく、名前は必須の方が良いと思いますので、不要な場合は追加しないでください。
1 2 3 4 5 6 |
//名前を任意 function bbp_no_name($arg) { $arg['bbp_anonymous_name'] = 'ken'; return $arg; } add_filter('bbp_pre_anonymous_post_author_name', 'bbp_no_name'); |
これで、名前も必須から任意になりました。
入力欄自体は表示されたままです。「名前」「メールアドレス」「ウェブサイト」の部分をCSSを使って非表示にします。
次のコードをstyle.cssに記述します。
1 2 3 4 5 6 7 8 9 10 11 12 |
/* 名前を非表示 */ fieldset.bbp-form fieldset.bbp-form p:nth-child(2) { display: none; } /* メールアドレスを非表示 */ fieldset.bbp-form fieldset.bbp-form p:nth-child(3) { display: none; } /* ウェブサイトを非表示 */ fieldset.bbp-form fieldset.bbp-form p:nth-child(4) { display: none; } |
必要なCSS部分だけをお使いください。これで非表示になりました。
但し、全ての項目を非表示にすると「あなたの情報」と表示された部分だけが残ります。これを非表示にするのであれば、項目の枠全て非表示にします。次のCSSを記述します。
1 2 3 4 |
/* 入力項目や枠全てを非表示 */ fieldset.bbp-form fieldset.bbp-form { display: none; } |
以上がfunctions.phpとcssで設定する方法です。
bbpressのコードを直接編集
bbpressのフォルダから必須項目や入力欄を直接削除する方法です。
システムの根幹部分がbbpressのフォルダにある「includes」です。この部分を編集します。
まずは、メールアドレスを必須から任意に変えます。「/wp-content/plugins/bbpress/includes/common/functions.php」を開きます。
629行目~部分をコメントアウトします。
1 2 |
// if ( empty( $r['bbp_anonymous_name'] ) ) // bbp_add_error( 'bbp_anonymous_name', __( '<strong>ERROR</strong>: Invalid author name submitted!', 'bbpress' ) ); |
次に、メールアドレスとウェブサイトを非表示にします。「/wp-content/plugins/bbpress/templates/default/bbpress/form-anonymous.php」を開きます。
26行目~部分をコメントアウトします。
1 2 3 4 5 6 7 8 9 |
<!-- <p> <label for="bbp_anonymous_email"><?php _e( 'Mail (will not be published) (required):', 'bbpress' ); ?></label><br /> <input type="text" id="bbp_anonymous_email" value="<?php bbp_author_email(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_anonymous_email" /> </p> <p> <label for="bbp_anonymous_website"><?php _e( 'Website:', 'bbpress' ); ?></label><br /> <input type="text" id="bbp_anonymous_website" value="<?php bbp_author_url(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_anonymous_website" /> </p>--> |
functions.phpやテンプレートphpを直接削除するため、不用意に編集ミスをすると致命的なエラーが起きることもあります。該当ファイルのバックアップを忘れないようにしてください。
これで、メールアドレスとウェブサイトの部分は非表示になりました。この方法はbbpressのプラグインが更新されると設定は上書きされて消えます。そのため、毎回作業が必要になります。
専用プラグインを作成
bbpressの使い方を紹介しているzonoblogさんでは、bbpressのコメント投稿時に名前とメールアドレスを任意にするプラグインを公開されています。
この方法だと、プラグインとして使えるため扱いやすいです。
但し、プラグイン化するためには、記事に説明してあるプログラムの冒頭部分が抜けているようです。次のコードを「add_action( 'init', array( 'WPSE_Empty_Anonymous_Replies', 'init' ) );
」の前に足してください。
1 2 3 4 5 6 7 |
<?php /* Plugin Name: empty-anonymous-bbpress Description: bbpressのコメント投稿の名前とメールアドレスを任意にするプラグイン Version: 1.0 */ |
これで自作プラグインとして使えるようになります。
作成後のトピックとコメントの再編集を無制限にする方法
ユーザーがトピックやコメントをした後に一定時間が経過すると編集リンクは消えて再編集できなくなります。
どれだけ時間が経っても無制限に編集リンクを表示させるなら、次のコードをfunctions.phpに記述します。
1 2 3 4 5 |
//編集リンクを常に表示 function no_edit_lock($retval, $cur_time, $lock_time, $post_date_gmt){ return false; } add_filter( 'bbp_past_edit_lock', 'no_edit_lock', 1, 4); |
これで、常時編集リンクが表示されるようになりました。
但し、後から無期限に編集できるようになると、ユーザーによっては気が変わって編集を繰り返す人もいます。結果的に投稿内容が変わり過ぎることもあるので、必要かどうか良く検討してください。
bbpressの各ファイルをテーマ内で編集
bbpressの各ファイルは直接編集しても、プラグインの更新があれば上書きされてしまいます。せっかくのカスタマイズが消えるのは避けたいものです。そのような場合に便利なのが、bbpressの各種ファイルを使用中のテーマ内にアップロードして編集をする方法です。これで、更新がされても上書きされることはなくなります。
使用中のテーマ内にアップロードしたbbpressの各種ファイルが優先的に使用されます。なお、上書きがされないため、更新により最新機能が追加されると、その恩恵を受けられなくなります。そのため、必要なファイルに限定して使ってください。
掲示板の表示に関するファイル
掲示板の表示に関する処理を行うファイルは次のフォルダに収納されています。
「/wp-content/plugins/bbpress/templates/default/extras」
これらのファイルを使用中のテーマ内にアップロードします。
「/wp-content/themes/使用中のテーマ/」
トピックやコメントなどの表示に関するファイル
トピックやコメントの表示に関する処理を行うファイルは次のフォルダに収納されています。
「/wp-content/plugins/bbpress/templates/default/bbpress」
これらのファイルを使用中のテーマ内に「bbpress」という名のフォルダを作成して、そのフォルダ内にアップロードします。
「/wp-content/themes/使用中のテーマ/bbpress/」
システムの動作や制御に関するファイル
システムの核となる部分のファイルはテーマ内に置くことはできません。この部分を移動しないでください。
これで、使用中のテーマ内にbbpressファイルをアップロードして使用する方法の説明は終わります。各種ファイルがどのような機能を持っているかは、過去の記事に掲載しています。参考にしてください。
ユーザー登録機能
ユーザー登録をした人のみ掲示板に書き込みができる方法もあります。書き込み数は減りますが、スパム投稿も確実に減少します。ユーザー登録機能があるとSNSに近い身近な関係で保てるため、長年に渡ってサイト利用する人も出てきます。
1.bbpressにログイン機能を設定する方法は、WordPressの管理画面から「設定」>「一般」を開きます。
2.「メンバーシップ」を「だれでもユーザー登録ができるようにする」にチェックを入れます。また、「新規ユーザーのデフォルト権限グループ」は「購読者」にします。
3.bbpressの「フォーラム設定」を開いて、「自動権限グループ」を「参加者」か「観覧者」にします。
4.ユーザー登録のページを作成します。
固定ページにショートコードを記述して作成します。
1 |
[bbp-register] |
新規ユーザーのアカウント作成ページが完成しました。
5.パスワードのリセットページを作成します。ユーザー登録してログインパスワードを忘れた場合にリセットを行うページです。
固定ページに次のショートコードを記述して作成します。
1 |
[bbp-lost-pass] |
パスワードの再発行ページが完成しました。
6.ログイン画面を表示するには、専用のページを作成するかサイドバーなどのウィジェット機能を利用します。
ウィジェットの場合はWordPressの管理画面から「外観」>「ウィジェット」を開き、「(bbpress)ログインウィジェット」を設置します。
- タイトル・・タイトルを入力します。
- 登録URL・・ユーザー登録のページのURLを記入します。
- パスワード再発行URL・・パスワードの再発行ページのURLを記入します。
また、ログインを固定ページで作成する方法もあります。
固定ページにショートコードを記述して作成します。
1 |
[bbp-login] |
ログインページが完成しました。
なお。登録したユーザー自身がアカウントを退会する機能は標準ではありません。退会機能があるbbprss専用のプラグイン「bbPress forum utility pack」を使用してください。
画像投稿する方法
Inline Image Upload for BBPressはトピックや返信(コメント)に画像を投稿できるようにするプラグインです。
投稿するエディタの右端に画像アイコンが追加されます。
使う場合は画像アイコンをクリックして、画像を投稿します。
- ソース・・投稿する画像を選択します。
- 画像の説明・・alt部分にある画像の説明です。
- サイズ・・画像のサイズを決めます。
これで画像が投稿できました。
画像があると話題性やスレッドが盛り上がります。一方で、意図せぬ画像やスパム投稿される場合もあります。特にアダルトやダークな画像は他の訪問者を不快にさせたり、広告のポリシーに違反するケースもあります。
そのため、誰でも投稿できる掲示板は画像投稿は避けて、登録ユーザーだけが投稿できる掲示板に画像機能を持たせるのが良いと思います。