我正在尝试在单个产品页面上执行if语句,以基于产品类别产品类别回显链接。
我知道我不能在类别存档页面之外使用is_product_category()
。因此,我尝试使用has_term
,但这只是不回应我想要的。这是我到目前为止使用的代码。
<?php if( has_term( array( 'mac', 'imac', 'macbook', 'imac-pro' ), 'product_cat' ) ) {
echo '<a href="#">All Mac Accessories</a>';
} ?>
我在这里想念什么?
答案 0 :(得分:2)
似乎has_term
在第三个参数中需要一个帖子ID。它不会自动将第三个参数用作当前帖子ID。您必须手动传递当前帖子ID。默认情况下,根据文档,在第三个参数中传递null。
在这里查看,https://developer.wordpress.org/reference/functions/has_term/
我已经在content-single-product.php中测试了以下代码,并且可以正常工作。
<?php
$terms = ['sagar', 'tamang'];
if ( has_term( $terms, 'product_cat', get_the_ID() ) ) {
echo '<h1>Yes</h1>';
} else {
echo '<h1>No</h1>';
}
?>
您可以按以下方式修改代码。
<?php
if( has_term( array( 'mac', 'imac', 'macbook', 'imac-pro' ), 'product_cat', get_the_ID() ) ) {
echo '<a href="#">All Mac Accessories</a>';
}
?>