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页面外还在工作?
答
。在你的代码就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'。让我使用你的代码,然后恢复 –
商品类别的类别,他们是在一个自定义分类一个方面。因此''has_category(“music”)'需要被替换为''has_term(“music”,“product_cat”)'](https://codex.wordpress.org/Function_Reference/has_term) – helgatheviking