2017-04-06 147 views
1

在我的header.php中,我想根據頁面的類別添加標題。WooCommerce - 確定當前單個產品頁面的產品類別

我當前的代碼如下所示:

<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> 

我想在H1呼應出Workshop如果產品頁面的單品頁,如果該產品在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產品類別工作(WooCommerce產品類別有一個自定義分類「product_cat ')
  • 條件is_product() && is_product_category()不會&&一起工作,因爲is_product()將針對單品頁,is_product_category()將目標產品類別的檔案頁面。

要定位在單一產品頁面的產品類別,您需要使用WordPress的條件函數has_term()與「product_cat」分類。
您也可以指定產品類別的檔案在同一時間的網頁在你的病情,如果他們使用相同的標題...

所以,你的代碼(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'。讓我使用你的代碼,然後恢復 –

相關問題