WordPressカスタマイズ事例

カテゴリやタームに紐づけたカスタムフィールドを取得し、表示する

弊社では原則カスタムフィールドはアドバンストカスタムフィールドというプラグインで管理しています。
したがって本記事でもカスタムフィールドはアドバンストカスタムフィールドで登録する前提でお話ししますので、そこのところご留意ください。
 
記事に属するカスタムフィールドを取得し表示する方法は以前にお伝えした通りです。
メインビジュアル(ヒーローイメージ)をアイキャッチで管理する
アドバンストカスタムフィールドを使ってカスタムフィールドに登録した画像の取得と表示
 
今回は、カテゴリやタームに紐づけたカスタムフィールドの取得と表示の方法についてご紹介。

記事に属するカスタムフィールドの取得は

get_field('カスタムフィールド名', $post->ID)

で行けます。
いっぽう、カテゴリやタームに紐づけたカスタムフィールドの取得の場合、
上の $post->ID のところを ‘taxonomyname_ + termID’ にしてセットします。
 
具体例として
カスタム分類(タクソノミー)名:products_cat
表示したいカスタムフィールド名:prdcat_tokucho
とすると、
カスタム分類ページテンプレート taxonomy-products_cat.php の記述は以下のようになります。

// カスタム分類名
$taxonomy = 'products_cat';
$term_slug = get_query_var('term');
$the_term = get_term_by('slug', $term_slug, $taxonomy);
$term_id = $the_term->term_id;
//タームのカスタムフィールドを取得するにはIDを「taxonomyname_ + termID」にする
$term_idsp = $taxonomy."_".$term_id;
//なお、タームではなく、カテゴリの場合は「category_ + termID」にする
//$cat_id = $category->cat_ID;
//$term_idsp = 'category_'.$cat_id;
if(get_field('prdcat_tokucho', $term_idsp)){
echo get_field('prdcat_tokucho', $term_idsp);
}

以上でカスタムフィールドの取得と表示は完成です。
 
次に管理画面上のアドバンストカスタムフィールドの設定の仕方ですが、
ルールの設定のところで、プルダウンから「Taxonomy Term」を選択し、「等しい」、「カスタム分類(タクソノミー)’products_cat’の日本語名」を選択します。
あとは、「カスタム分類(タクソノミー)’products_cat’の日本語名」のターム登録ページに行けば設定したカスタムフィールドがありますので、そこに任意の内容を入れて登録は完了です。
 
以上、カテゴリやタームに紐づけたカスタムフィールド(例:’prdcat_tokucho’)を取得し、表示する方法のご紹介でした。


関連するWordPressカスタマイズ事例