Alexx The Rocks

雑記。

【bbPress】掲示板構築の備忘録【WordPress】

2021年9月25日 更新
Categoryweb制作
tag

初めてbbPressを触ることがあり、諸々の設定等を忘れないようにメモ。bbPressの説明、インストール手順等は割愛。
初めてのことなので分からないことだらけではあったが、インストール~簡単なカスタマイズは情報が多々あったので助かった。
■WordPressのバージョン:5.8
■bbPressのバージョン:2.6.6
■サーバー:xampp

また、極力bbPress用のプラグインはインストールせずにやってみる。

作りたい掲示板の最低限な要件定義

■エリアごとに掲示板(フォーラム)を設ける
Aエリア、Bエリア、Cエリア、Dエリア…のような形で、そのフォーラムごとに、ゲストでも投稿が出来るような掲示板。
ユーザー登録をしない運用を想定。これであればユーザー個別ページのようなものも不要かと思われるし、さしてテンプレートファイルを用意しなくても良いのかと。

※一応、投稿や返信の個別URLも生成してしまうようなのでheader.phpでnofollowにする等、余裕があれば対応しておいた方が良いかも。

bbPressでやりたいこと

・オリジナルテーマを使いたい
・タイトル、本文以外にもある程度決めうちで投稿項目を作りたい

bbPressを初めて動かしてみて、対応した方が良いかなと思ったこと

・bbPressの検索フォームに「検索対象はタイトル・本文になります」とplaceholderを入れたい
※検索対象を増やすことも出来るようだが割愛。
・オリジナルテーマのパンくずリストを使うので、bbPress独自のパンくずは不要。
・投稿者のアイコンは使わない(ゲストのみのやり取りの場なので)。

参考になったサイト

■オリジナルテーマ作成
bbPressをカスタマイズしてオリジナルデザインの掲示板サイトを作ろう – アドベンチャーズ株式会社

他のサイトにも説明があったが、オリジナルテーマ内にbbPressのプラグイン内のファイルを直にペーストという内容の記事も他にあったが、こちらのサイトは「wp-content/themes/original-theme/bbpress」のように自作テーマ内にフォルダを作ってまとめられるという事が分かったので良かった。ある程度整理出来たほうが良い。また、このやり方でやればbbPressがバージョンアップしてもオリジナルテーマは影響を受けない模様。

■投稿項目の追加
【bbpress】トピック作成フォームに独自項目をカスタムフィールドで追加する方法|bbPressカスタマイズ本舗
https://bbp-customize.com/add-post-item/

トピックタイトルと本文以外にも投稿項目を追加したかったので、こちらのサイトが参考になった。functions.phpに項目を足して、single-topic.php側に書き出す項目を足していく流れ。

しかし、バージョン等の理由か、フォームの入力時点でtabキーを押しての挙動がおかしく、なぜかトピックタイトルから次の項目へ移動せず、末尾の本文欄へ移動してしまう。

UX的に微妙ではあるが、tabindex等で制御するしかないか?

その他諸々

■bbPressページの分岐
header.phpでタイトルやメタタグ等分岐させると思うので、最低限これだけ分かれば大丈夫かなと。
インストール後、bbPressのフォーラムシングルスラッグを変更していない前提。
・フォーラム一覧

<?php if ( is_archive( 'forum' )) : ?>

・トピック一覧

<?php if ( is_archive( 'forum' )) : ?>

・トピック詳細

<?php if ( is_singular( 'forum' )) : ?>

・検索結果一覧

<?php if ( bbp_is_search()) : ?>

それぞれ2ページ目以降があれば「&& is_paged()」等を足して対応。

■bbPressのデフォルトcssを除去
functions.phpに下記を追記。

add_action('wp_print_styles', 'deregister_bbpress_styles', 15);
function deregister_bbpress_styles(){
	wp_deregister_style('bbp-default');
}

https://zenn.dev/craftbox/scraps/5a50fdf85d9912
bbpressの関数まとめ

■bbPressデフォルトの「フォーラム」名称変更
functions.phpに下記を追記。

add_filter( 'bbp_get_forum_post_type_labels','my_bbp_get_forum_post_type_labels');
function my_bbp_get_forum_post_type_labels($arg){
	$arg['name']='任意の名前';
	return $arg;
}

■検索フォームに「検索対象はタイトル・本文になります」とplaceholderを入れる
「wp-content/plugins/bbpress/templates/default/bbpress」内の「form-search.php」に対象箇所があるので追記。
同様に、それぞれ入力フォームにplaceholderを足したい場合は同フォルダ内の「form-anonymous.php」や「form-topic.php」等に追記して対処。ただ、恐らくバージョンアップ等で差し戻されると思われる。

■bbPressのパンくずリストを非表示。
スマートなやり方が見つからず、仕方なく「div.bbp-breadcrumb」にdisplay:none;で対処。

■ゲストのサムネイルを非表示
WordPressの設定>ディスカッション>最下部「アバター」で非表示にする。

こうなった方がいいなと思ったこと

■ゲストの返信は仕様なのか「返信」として扱われず「投稿」として扱われる模様。
トピック一覧に「返信」として項目があるから、いくら投稿が多くても返信は0のままになるのでいささか寂しく見える印象。display:none; で対応しても良いが、出来ればもっとスマートにしたい。

■トピック最大文字数の「80」は日本語文字数で26文字まで
UTF-8で日本語1文字が3バイトになるので、日本語で登録しようとすると26文字までが限界の模様。一応、上限の変更も探せば出来るようだが今回は割愛。

■本文へのURL投稿が2つ以上出来ない
これはbbPressの設定でなく、WordPressの設定から変更して対応。何度もテスト投稿してみたが、こんなの分かるわけが無い。WordPressの設定>ディスカッション>コメントモデレーションで任意の数値に変更。下記サイトには感謝。
https://easel.gt-gt.org/210107/
フォーラムへの投稿がスパム扱いとして保留されてしまう問題が解決しました | EASEL

■検索結果ページの表示数
これはbbPressの設定で「1ページに表示するトピック・返信数」の返信数で変更。もう少し分かりやすく書いてくれても。

その他思い出したら追記予定。