WordPress のシングルページで特定のタクソノミーの場合のみ表示を変えたい

表題の通り、WordPress のシングルページで特定のタクソノミーの場合のみ表示を変えたいケースのスニペットをメモ。

さっくり終わらせたかったのでとりあえずできたものを貼っておきます。

スニペット

<?php
    if(
        in_array(
            'AN_TAXONOMY_SLUG',
            array_column(
                get_the_terms(
                    $post->ID,
                    'AN_TERMS_KEY'
                ),
                'slug'
            )
        )
    ) {
?>
    <!-- Some codes -->
<?
    }
?>

今回はこれでfix。

サンプルケース

例えば「cms」というカスタムタクソノミーに「wordpress」,「basercms」,「concretecms」といったタクソノミー、およびそのスラッグが存在した場合に「wordpress」のみ if内 の内容を表示させたい場合は次のようなイメージ。

<?php
    if(
        in_array(
            'wordpress',
            array_column(
                get_the_terms(
                    $post->ID,
                    'cms'
                ),
                'slug'
            )
        )
    ) {
?>
    <!-- Some codes -->
<?
    }
?>

参考

カスタムタクソノミーの表示

PHP, 連想配列の中の特定のキーの値で判定

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。