【WordPress】bbpressのトピック等にカスタムフィールドを追加する方法

ワードプレスの会員制サイトプラグイン「bbpress」で、フォーラムやトピックを作成する際にカスタムフィールドを追加する方法を紹介します。

今回はプラグイン「Advanced Custom Fields」を使い

カスタムフィールドに入力した文章を、トピックの一覧に表示する方法

を解説していきます。

プラグイン「Advanced Custom Fields」のインストール

まずはじめに、プラグイン「Advanced Custom Fields」をインストールし、有効化しましょう。
「Advanced Custom Fields」で検索するといくつか出てきてしまうのですが、今回は下の画像のものを使用します。

Advanced Custom Fieldsの使い方

有効化するとメニューに「カスタムフィールド」という項目が追加されます。
カスタムフィールドの新規追加はこちらから行います。

フィールドグループを追加する

新規追加」をクリックし、フィールドグループの設定を行います。
フィールドグループ毎にどのようなカスタムフィールドにするかを細かく設定出来るので、
ページによって様々な表示方法が可能になります。
フィールドグループのイメージはゲームでいう装備やパーティのプリセットのようなものです。

タイトルを追加

今回はbbpressのトピックにカスタムフィールドを追加するので、タイトルはわかりやすく「bbpress」にしました。

フィールドを追加

「フィールドを追加」という青いボタンをクリックすると、細かい設定の入力欄が表示されるので、以下の4つの項目を入力します。

フィールドラベル 編集ページで表示される名前
フィールド名 phpファイルにコード書く際に必要になります
フィールドタイプ 編集ページでの入力欄のタイプ
説明 編集画面に表示される説明文

ここでは例として下記のように設定します。

下の画像は実際の投稿画面です。
参考にして入力してください。

ルールの設定

設定したフィールドグループをどの投稿画面で使うのかを設定します。
特定のテンプレートを指定したり、カテゴリやユーザーの指定もできます。

今回はbbpressのトピックに表示させるので
左から「投稿タイプ」「等しく」「トピック」とします。

公開

入力が終わったら、ページ上部に戻り右にある「公開」ボタンをクリックして設定を完了します。

以下のようになっていればOKです。

bbpressのphpファイルの編集

トピック一覧が表示されるファイルに、カスタムフィールドを出力するためのコードを追加します。

ファイル名 loop-single-topic.php
ファイルの場所 plugins > bbpress > templates > default > bbpress > loop-single-topic.php
追記するコード

<?php echo get_field( 'topics_description' ); ?>

topics_descriptionの部分は先に設定した「フィールド名」を入れます。

追記する場所

任意の場所にコードを貼り付ければ完了ですが、今回はトピックのタイトル名の下に表示させたいので、loop-single-topic.phpの56行目の<?php do_action( 'bbp_theme_before_topic_meta' ); ?>の下にコードをコピペします。
以上で完了です。

最後に

カスタムフィールドは、HTMLに詳しくない方が更新する際や、bbpressのようにガチガチのプログラムにちょっと手を加えたい時にとても便利です。
今回はbbpressのトピックに追加する方法の紹介でしたが、このプラグインを使えば他の編集ページにも追加できます。

カスタムフィールドはHTMLタグを入れたり画像を入れる事も出来ます。
もっと多くの機能を使いたい場合は有料版もあります。

入力項目の詳しい内容は公式サイトで確認することも出来ます。

Advanced Custom Fields 公式サイト