web-dev-qa-db-ja.com

ページに関連用語があるかどうかを確認する

私は、投稿に関連した用語に対して条件付きロジックを実行する方法を探しています。

基本的に私は "年齢層"のために私自身のカスタム分類法を作成し、それらのために3つの用語を作成しました。 Kids、Teens、Adults ...管理領域で、特定の投稿に適用される用語を確認し、そのページテンプレート内のサイトのフロントエンドに表示されるようにします。用語が関連付けられていなかった場合は別の名前。

誰もがこれに対する解決策を持っていますか...私は次のコード例はうまくいくと思いましたが、それはうまくいきませんでした。 (ところで - 私がここでやっていることはCSSに基づいて画像を変更することです)。

<li id="kids-<?php if ( is_term( 'Kids' , 'age_groups' ) ) {
   echo 'on';
} else {echo 'off';} ?>">Kids Programs</li>
2

こんにちは@ NetConstructor:

まず最初に、あなたの論理がうまくいったと仮定してあなたはあなたの例を単純化するために三項演算子を使うことができます:

<li id="kids-<?php echo is_term('Kids','age_groups') 
   ? 'on' : 'off'; ?>">Kids Programs</li>

問題は、is_term()が用語が存在するかどうかをチェックするために使用されていて、特定の投稿に関連しているかどうかではないということです。私はあなたが本当に欲しいのはis_object_in_term()であると思います(これはあなたが The Loop にいる、すなわち$postが適切な値を持っていると仮定しています):

<li id="kids-<?php echo is_object_in_term($post->ID,'age_groups','Kids') 
   ? 'on' : 'off'; ?>">Kids Programs</li>

P.S is_term()が正しい関数であると仮定すると、実際には 推奨されていませんterm_exists()is_term()を置き換えます。ただファイ。

6
MikeSchinkel