ACF ターム編集画面に入力した内容をターム一覧画面に表示する

ワードプレスPHPアドバンスドカスタムフィールドカスタムフィールドカスタム投稿タイプタクソノミータグ、カテゴリータームプラグイン

タクソノミ、ターム関連の話は毎回タイトルがややこしい。

ターム編集画面に入力した内容をアーカイブページに表示する

アドバンスドカスタムフィールドを使うと、ターム(カテゴリ、タグも含みます。)編集画面にもフィールドを作れます。

 

使わない場合は、index.phpやらarchive.phpなどのテンプレートに

  1. 直書きする
  2. ウィジェットを読み込む
  3. 特定のページ、投稿の内容を読み込む
  4. ACF Proの全体オプションを使う

などが考えられますが、

1は論外、2、3は分かりにくい(関連性が乏しい)

クライアントが更新することを考えると「4 ACF Proの全体オプション」くらいしか選択肢が無いと思います。

4は設定自体は難しくないですが、数が多いと作成が面倒だし、タームが増えたときにいちいち対応が必要。

フィールド作成、入力

フィールド作成は、投稿などに追加する場合とほぼ同じで、「位置」の設定だけ違います。

「このフィールドグループを表示する条件」で、下の方の「フォーム」の「タクソノミー」を選びます。で、必要なタクソノミーなり「全て」なりを選択します。

すると、タームの編集画面にフォームが追加されるはずです。

出力

ちょっとはまりましたが、マニュアルにありました。

例では画像を表示していましたが、簡単のためテキストを出してみます。

<?php
$term = get_queried_object();
if( get_field( 'archive_info_1', $term ) ){
	the_field( 'archive_info_1', $term );
}
?>

タームアーカイブで、「archive_info_1」というフィールドに何か入っているなら内容を出せ、という意味です。

引数でターム情報を渡してやらないと何もしないので注意。

「$term」は、「タクソノミー_タームID」でも指定可能なので、デフォルトを設定したい場合はこちらで指定すると良いと思います。

使いどころ

タームアーカイブにいろいろと追加したい場合以外に、タームごとにヘッダーを変える場合などに便利かも。

投稿タイプを追加せずに、標準投稿とカテゴリ分けだけで構成するとき必須レベルで使いそうです。