WordPressで会員制の掲示板を作る

WordPressで掲示板を設置する時は、「bbPress」や「Asgaros Forum」といったフォーラム用のプラグインが定番ですが、コメント機能でも似たようなことができます。

先日、WordPressで掲示板を作る機会があったのですが、その時もコメント機能を利用しました。

今回は先日の作業内容と使用したプラグインを紹介します。WordPressで会員制の掲示板を作る時の検討材料にもなると思います。

必要な機能を決める

先日設置した掲示板は、以下の条件を満たすものにしました。

・レスへの返信
・ページの分割
・ファイルの添付
・最新のレスを一覧表示
・会員制

ファイル添付、一覧表示、会員制についてはプラグインを使用しましたが、必要に応じて使う感じなので、シンプルな掲示板を作る時は不要だと思います。

レスに返信ボタン

ブログの場合は、投稿された記事へのコメントを書きますが、掲示板ではコメントする人同士の意見交換もあるので、コメントの部分にも返信機能が必要です。

返信機能は、WordPressの管理画面の「設定」にある「ディスカッション」で有効化できます。

ディスカッションの画面にある「他のコメント設定」の「コメントを○階層までのスレッド (入れ子) 形式にする 」を2階層以上に設定しておけばレスへのレス、つまりコメントに対してコメントを書くことが可能になります。

レスの数に応じてページを分割

投稿されたレスは縦に並ぶので、レスの数が多くなるとページが縦に長くなります。

当然ながら過去のコメントと新しいコメントの間を行き来する時は、画面の縦移動が大変です。

しかし、表示される件数を決め、超えた分を新しいページで表示するようにできれば、縦移動の距離が一定になります。

もちろん、今度はページ移動という横の移動が必要になりますが、毎回すべてのレスを読み込む必要はなくなります。

このページの分割についてもディスカッションで設定できます。

ディスカッションの画面にある「1ページあたり○件のコメントを含む複数ページに分割し 」の件数を指定しておけば、ページが分割されるようになります。

ディスカッション設定

ファイル添付

コメントの投稿フォームにはファイルをアップロードする機能がないのですが、「DCO Comment Attachment」というプラグインを追加すると添付できるようになります。

DCO Comment Attachment
Allows your visitors to attach files with their comments

画像や映像ファイルをレスに埋め込むこともできますし、設定画面で「Embed attachment?」のチェックを外すと、ファイルへのリンクという形で表示されます。

ファイルへのリンクを別画面で開きたい時は、「External Links」というプラグインも追加し、設定画面の「例外」のところにある「外部リンクに含める URL」に以下を入力して保存します。

https://設置場所のドメイン/wp-content/uploads/
External Links – nofollow, noopener & new window
Link scanner + internal & external links manager: open in new window or tab, control nofollow, ugc, sponsored & noopener. SEO friendly.

最新のレスをHOME画面に表示

投稿した記事のページを開けば最新のレスを確認できますが、以下のプラグインを使えばサイドバーやフッター等のウィジット部分で表示できます。

Recent Comments Widget Plus
Provides custom recent comments widget with extra features such as display avatar, comment excerpt and much more!
Polygon Recent Comments With Avatar
Display recent comments in sidebar with user avatar/ gravatar support styles, information, active scrollbar when you have so much comments...

Recent Comments Plus

どちらもリンク付きで抜粋も表示できるのですが、投稿日時も表示したい時は、「Polygon Recent Comments With Avatar」の方が良いと思います。

表示に関する設定は、ウィジットで追加した時に出てくる設定画面で行います。

管理画面の「外観」から「ウィジェット」をクリックし、「Recent Comments Plus」を表示したいウィジットの場所へ移動すると表示内容を設定できます。

ただ、ウィジットに追加するとサイト内のすべてのページで表示されるので、特定のページのみの表示にする時は、「Widget Options」も追加します。

Widget Options – Add Context To WordPress Widgets
Get Better Control over your WordPress Widgets. Easily show or hide WordPress widgets on specific pages, for specific user roles, taxonomy or devices.

Widget Options

今回はHOME画面だけの表示にしたかったので、以下の流れで設定しました。

1.固定ページで「HOME」を作成。
2.WordPressの表示設定で固定ページ、HOMEを指定。
3.外観のウィジットを開く。
4.最新のレスを表示するところを開く。
5.画面下の「Hide/Show」を「Show on checked pages」に切り替える。
6.表示するページの「Home/Front」にチェックを入れる。

会員制(パスワード認証)

誰でもコメントが書ける状態になっているとスパムの投稿が増える可能性もありますが会員制にしておけば管理が楽です。

もちろん、制限しない方が利用しやすいですし、スパム対策をきちんとやるなら会員制にしなくても良いと思います。

今回作成した掲示板では、管理者の負担を軽くする必要があったので、会員制にしました。

会員制にする方法には色々とあるのですが、アクセスをブロックするだけならパスワード保護が手軽で便利です。

WordPressには記事単位で保護する機能があるので、掲示板用として使う記事でパスワードを設定しておけば、外部からのアクセスをブロックできます。

記事でパスワードを設定

パスワードを設定した記事が対象なので、スレッド(記事)を追加する時は、その都度パスワードを設定することになります。

ただ、WordPressを掲示板専用として使う場合は、「Password Protected」というプラグインを使った方が楽です。

Password Protected
とても手軽に、WordPress サイトにパスワード保護をかけられます。

使用するパスワードは、管理画面の設定の中にある「パスワード保護」で指定できます。

また、ユーザー登録を不要にしたい時は、「ディスカッション」の「他のコメント設定」で「コメント投稿者の名前と~」と「ユーザー登録して~」のチェックを外しておきます。

ログイン画面をカスタマイズ

会員制にするとログインが必要になりますが、「Custom Login Page Customizer」を使えば画面をカスタマイズできます。

Custom Login Page Customizer
Custom Login Customizer があれば、管理者のログインページを、WordPress のカスタマイズ画面から直接、簡単にカスタマイズできます!

追加して有効化すると外観のメニューに項目が追加されます。

Custom Login Page Customizer

ここをクリックするとカスタマイズ用の画面が表示され、ロゴ、ボタン、色等を変更できます。

掲示板内の検索

WordPressには検索機能がありますが、コメントを検索できないので、「Search Everything」というプラグインも追加すると便利です。

Search Everything
Search Everything は3つの簡単なステップで WordPress のデフォルトの検索機能を拡張することができます。

コメント(レス)を検索結果に出すことはできないのですが、レスがついた投稿記事の方をリンクつきで表示できます。

複数の投稿を別のスレッドとして使う時には便利だと思います。

ただ、このプラグインにはバグがあって、新規で記事を投稿した時にエラー表示が出ます。

【WordPress Plugin】プラグイン[Search Everything]使用時に、記事を公開するタイミングでエラーが出る問題。

投稿自体はできますが、使用する時は事前に修正した方が良いと思います。

さいごに

今回紹介した方法は、投稿した記事がスレッドになるので、すでに運営しているブログにも追加できます。

手軽にやりとりできるSNSが主流になったこともあり、掲示板を設置することはあまりないかもしれませんが、機会があったら選択肢に加えてみてください。