使用产品标签条件向WooCommerce侧边栏添加小部件



我在Wordpress网站上使用WooCommerce作为目录(即在禁用购物车的情况下),我想根据产品是否有特定标签向单个产品页面侧边栏添加小部件。我试着使用"Widget Logic"插件和条件标签,但即使我禁用了所有其他插件,我也无法在网站上的任何地方使用它(即,包括带标签的帖子和主边栏,所以不仅仅是在WooCommerce中使用带标签的产品)。

然后我添加了"PHP代码小部件",并在其中添加了以下代码:

<?php
if (is_product_tag( 'adexample1' )) {
echo "test1";
} elseif (is_product_tag( 'adexample2' )){
echo "test2";    
} elseif (is_product_tag( 'adexample3' )){
echo "test3";  
} elseif (is_product_tag( 'adexample4' )){
echo "test4";  
} elseif (is_product_tag( 'adexample5' )){
echo "test5";  
} else {
echo "<p>test6</p>";
}
?>

我已经用标记的产品和其他产品进行了测试,但它们都在小部件中返回"test6"。

有人能看到我做错了什么吗?或者产品标签可能由于某种原因(可能是权限?)而无法工作/被识别。这个问题在默认的2017年和WooCommerce的基本主题中复制,所以它似乎不是一个主题问题?

对于实现这一目标的另一种方式的建议也将不胜感激?

感谢

条件is_product_tag()无法获取带有产品标签的产品,因为它用于在查看产品标签存档页面时返回true。

为了实现您想要做的事情,您需要使用WordPresshas_term()条件函数,并将已定义的$taxonomy参数设置为'product_tag',这样:

// Define BELOW your product tag ID, slug or name (or an array of values)
$term = 'adexample1';
$term2 = 'adexample2'; // ...
// HERE are your conditions with your code
if( has_term( $term, 'product_tag' ) ){
echo "test1";
} elseif( has_term( $term2, 'product_tag' ) ){
echo "test1";
} else {
echo "<p>test6</p>";
}

这应该适用于具有'product_cat'定义的$taxonomy参数的产品类别…

最新更新