【ACF】タクソノミーに設定したAdvanced Custom Fieldsの値を取得する方法
Advanced Custom Fields(ACF)はWordPressでカスタムフィールドを作成するための人気プラグイン。
このプラグインで作成したカスタムフィールドはタクソノミー(カテゴリー)にもオリジナルの項目を作成することが出来ます。
しかし、毎回タクソノミー(カテゴリー)に設定したカスタムフィールドの値はどうやって取得するんだ?と思って迷ってしまいます。
そこで、この記事ではタクソノミーに設定したAdvanced Custom Fields(ACF)で作成したカスタムフィールドの値を取得する方法をご紹介したいと思います。
この記事の目次を表示
タクソノミー(カテゴリー)に設定したカスタムフィールドの値を取得する
タクソノミー(カテゴリー)に設定したAdvanced Custom Fields(ACF)で作成したカスタムフィールドの値は以下のコードで取得することが出来ます。
get_field( "カスタムフィールド名", "タクソノミースラッグ名"."_"."タームID" );
タクソノミー(カテゴリー)を一覧表示する場合
サイドバーなどでタクソノミー(カテゴリー)に登録されているタームを一覧表示するような場合に、タクソノミー(カテゴリー)に設定されているカスタムフィールドを取得する場合は以下のようにします。
<?php
$args = array( "taxonomy" => "タクソノミースラッグ名", "hide_empty" => 0 );
$terms = get_terms( $args );
foreach ( $terms as $term ) {
$field = get_field( "カスタムフィールド名", "タクソノミースラッグ名"."_".$term->term_id );
?>
<p><?php echo $field; ?></p>
<?php } ?>
WordPressの標準の投稿のカテゴリの場合、タクソノミースラッグ名の部分にはcategory
を指定します。
タクソノミーの場合は、作成するときに指定したタクソノミースラッグ名を指定します。
記事に設定されているタームを表示する場合
アーカイブページで記事一覧を表示する場合や、シングルページで記事の内容を表示する場合などにその記事に設定されているタームを表示する場合は以下のようにします。
<?php
$terms = get_the_terms( get_the_ID(), "タクソノミースラッグ名" );
foreach ( $terms as $term ) {
$field = get_field( "カスタムフィールド名", "タクソノミースラッグ名"."_".$term->term_id );
?>
<p><?php echo $field; ?></p>
<?php } ?>
もし、記事に設定するタームがひとつだけの場合は以下のようにすることも可能です。
<?php
$terms = get_the_terms( get_the_ID(), "タクソノミースラッグ名" );
$field = get_field( "カスタムフィールド名", "タクソノミースラッグ名"."_".$term[0]->term_id );
?>
<p><?php echo $field; ?></p>
まとめ
いかがでしたか?
タクソノミー(カテゴリー)にカスタムフィールドを設定することでカスタマイズの幅は広がります。
取得方法が分からなくなった場合は、是非この記事を参考にしてみて下さい。