【WordPress】カスタム投稿の記事に2つのタクソノミーのタームを表示する方法

意外とググっても出てこない、1つの投稿タイプ2つのタクソノミーを設定して、それぞれのタームを一緒に表示する方法の解説です。
プログラマの方からしたら初歩の初歩の内容かもしれませんが、非プログラマだとなかなか辿り着かない事だったので書いておきます。

以前、別の記事に書いたタクソノミーが1つの場合はこちらを参考に。

やりたい事

冒頭にも書きましたが、投稿タイプは1つで、タクソノミーは2つ設定し、それぞれのタームを表示する方法です。
情報サイトでよく見かける、タイトルの上にカテゴリがいくつも掲載されているアレです。

今回やりたいのは2つのタクソノミーなのです!

割と2つの投稿タイプで共通のタクソノミーを使う方法等は出てくるのですが、逆バージョンはあまり需要がないようです・・・

ですが、例えば1つのタクソノミーには県名だけを使いたいとか、
どうしてもクライアントの意向で2つに分けたいという場合もあると思います。
(実は僕がこういう案件に当たったので、方法を探しました^^;)

次は実際のコードの紹介です。

テンプレートファイルへコードを追記する

コードは以前紹介したものをベースにします。
下記はトップページに3つ新着情報をターム・日付・タイトル・アイキャッチの順で表示するコードです。

<ul>
<?php
$args = array ( 'post_type' => 'categories',
'posts_per_page' => 3);
$news = new WP_Query( $args );
if ( $news -> have_posts()):
?>
<?php
while ($news -> have_posts()): $news -> the_post();
?>
<?php $terms = wp_get_object_terms($post->ID, array('categories_cat','prefecture')); ?>
<li><a href="<?php the_permalink(); ?>"><?php foreach ( $terms as $term ) : ?>
<span class="category_tag <?php echo "$term->slug"; ?>"><?php echo esc_html( $term->name ); ?></span>
<?php endforeach; ?><?php echo get_the_date(); ?> <span class="ttl"><?php the_title(); ?></span>
<span class="thumbnail"><?php the_post_thumbnail(array(130,80)); ?></span></a></li>
<?php endwhile; ?>
</ul>
<p><a href="./categories/" class="btn-1">新着情報一覧</a></p>
<?php endif;
wp_reset_postdata();
?>

11行目で2つのタクソノミーを設定しています。

<?php $terms = wp_get_object_terms($post->ID, array('categories_cat','prefecture')); ?>

例えばcategories_catというタクソノミー1つだけの場合は
($post->ID,'categories_cat');ですが、
2つ設定する場合は
($post->ID, array('categories_cat','prefecture'));
という風に array('タクソノミー1','タクソノミー2') と設定します。

たったのこれだけです。
個別記事でもタームを設定する箇所を同じように書き換えれば表示されます。

知っていれば超簡単な方法ですが、簡単すぎて誰も書いていなかったようですね。
この記事が誰かの役に立ったら嬉しいです。