WooCommerce - 确定当前单个产品页面的产品类别

WooCommerce - 确定当前单个产品页面的产品类别

问题描述:

在我的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

。在你的代码就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'。让我使用你的代码,然后恢复 –