サポート » 使い方全般 » has_termを使って復数のタームを分岐させたいのですが。

  • 解決済 shintax

    (@shintax)


    条件分岐を使って表示を変更させています。

    <?php if ( has_term('new','group') ) { ?>
    AAA
    <?php } elseif ( has_term(array('new','old'),'group') ) { ?>
    CCC
    <?php } ?>

    このようにして表示をさせて、

    タームが「new」のときは「AAA」
    タームが「new」と「old」のときは「CCC」としたいです。

    しかし、両方のタームを入れているときは先に読み込んでしまうのか「AAA」になってしまいます。

    「old」だけのときは「CCC」です。

    完全に一致しているときの条件分岐はあるのでしょうか?
    宜しくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック投稿者 shintax

    (@shintax)

    なんとか自己解決しました。

    <?php if ( has_term('new','group') && has_term('old','group') ) { ?>
    CCC
    <?php } elseif ( has_term('new','group') ) { ?>
    AAA
    <?php } ?>

    if(条件1 && 条件2)
    条件1かつ条件2の場合TRUE(どちらにも合うもの)

    というので、
    「new」と「old」両方の時は「CCC」を表示
    「new」だけなら「AAA」を表示

    <?php if ( has_term( 'old', 'group' ) ) { ?>
    CCC  <!-- old なら new があっても無くても -->
    <?php } elseif ( has_term( 'new', 'group' ) ) { ?>
    AAA  <!-- old が無くて new があるとき -->
    <?php } ?>

    has_term に複数のタームを指定すると、その何れかが(つまり OR です)投稿に付いているかチェックします。has_term の「戻り値」の説明をご覧ください。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「has_termを使って復数のタームを分岐させたいのですが。」には新たに返信することはできません。