web-dev-qa-db-ja.com

条件付きステートメントカスタム投稿タイプのカテゴリ

次のように、カスタム分類カテゴリに応じてテキストを表示します。

カスタム投稿タイプカテゴリ _ x _ の場合はecho テキストY

私はこれを試したが、それはうまくいきませんでした:

global $post; 
if (($post->post_type == 'myposttype') && is_category('slug-name-of-cat')) {
 echo 'My text'

 }

任意のアイデア?

1
user43780

is_category()はカスタム分類アーカイブページでは動作しません。ここでの正しいコンディショナルタグは is_tax() です。これは、分類の名前を最初のパラメータとして使用し、2番目のパラメータとして用語名/ s、slug/sまたはID/sの文字列| int |配列を使用します。

そのため、条件付きステートメント全体は次のようになります。

if ( is_tax( 'my_taxonomy', 'slug-name-of-the-term') ) {
    echo 'My text';
}

編集

さらに、投稿が特定の用語に属しているかどうかをテストするには、 has_term() を使用して特定の用語をテストする必要があります。

global $post; 
if (    ( $post->post_type == 'myposttype' ) 
     && has_term( 'slug-name-of-the_term', 'my_taxonomy' )
) {
    echo 'My text'
}
2
Pieter Goosen