2017-04-06 1 views
1

私のheader.phpで私はページのカテゴリに基づいてタイトルを追加したいと思います。WooCommerce - 現在の単一商品ページの商品カテゴリーを決定します

私の現在のコードは次のようになります。私はH1でWorkshopをエコーし​​たい

<h1 class="page-title"><?php 

    if (is_category('english') || has_category('english',$post->ID)) { 

     echo "music in the world of noise"; 

    } elseif (is_category('marathi') || has_category('marathi',$post->ID)) { 

     echo "क्षितिज जसे दिसते"; 

    } elseif (is_category('happenings') || has_category('happenings',$post->ID)) { 

     echo "Happenings"; 

    } elseif (is_product() && is_product_category('music')) { 

     echo "music"; 

    } elseif (is_product_category('album')) { 

     echo "albums"; 

    } elseif (is_product() && is_product_category('workshop')) { 
     echo "Workshop"; 
    } elseif(is_product() && has_term('workshop')) { 
     echo "Workshop"; 
    } else { 
     the_title(); 
    } 

    ?> 

</h1> 

製品ページには、単一の製品ページがある場合、その製品はworkshopカテゴリ内にある場合。 Musicと同じです。 is_product_categoryは、単一の商品ページではなくカテゴリページでのみ動作します。

どのようにして単一の製品のカテゴリを特定し、関連するテキストをエコーし​​ますか?他のif文(is_category('english')has_category())は、woocommerceページ以外は動作していますか?

+0

製品カテゴリはカテゴリではありません、彼らはカスタム分類内の用語です。したがって、has_category( "music")を[has_term( "music"、 "product_cat") '](https://codex.wordpress.org/Function_Reference/has_term)に置き換える必要があります – helgatheviking

答えて

1

WooCommerceカテゴリに関するあなたのコード内のいくつかのミスがあります:

  • 機能is_category()has_category()は(WooCommerceの製品カテゴリは、カスタム分類「product_catあるWooCommerceの製品カテゴリでは動作しません。 ')is_product()は、単一の製品ページを対象とし、is_product_category()はアーカイブのページで製品カテゴリを対象としますよう
  • 条件is_product() && is_product_category()は、&&と一緒に動作しません。

単一の製品ページであなたの製品カテゴリをターゲットに、あなたは「product_cat」分類とWordpressの条件関数has_term()を使用する必要があります。
彼らは同じタイトルを使用する場合にも、...、

をあなたの状態で同時に製品カテゴリーのアーカイブページをターゲットにすることができますので、(WooCommerce製品カテゴリの)あなたのコードのようなものになるだろう:

<h1 class="page-title"><?php 

//  .../... 

    if (is_product() && has_term('music', 'product_cat') || is_product_category('music')) { 
     echo "Music"; 
    } elseif (is_product() && has_term('album', 'product_cat') || is_product_category('album')) { 
     echo "Albums"; 
    } elseif(is_product() && has_term('workshop', 'product_cat') || is_product_category('workshop')) { 
     echo "Workshop"; 
    } else { 
     the_title(); 
    } 
?></h1> 
しますあなたは同じ時間の製品カテゴリーのアーカイブページでターゲットにする必要がない場合は、各条件文で || is_product_category()を削除する必要があります

が...

+0

助けてくれてありがとう。私は 'has_term'を試したと思う。あなたのコードを使用させて元に戻します –

関連する問題