好吧,您已经知道/拥有类别名称(即“咖啡设备”),因此您可以使用它来获取相关标签,但为此,我们将在 functions.php 中创建一个函数您的活动主题,如下所示:
以下代码将转到您的活动主题的functions.php 文件:
function your_theme_get_tags_based_on_cat($cat_name)
{
$cat_id = get_cat_ID($cat_name);
$tag_query = new WP_Query(array(
'post_type' => 'product',
'posts_per_page' => -1,
'post_status' => 'publish',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $cat_id,
'operator' => 'IN'
)
)
));
$all_tags = array();
while ($tag_query->have_posts()) {
$tag_query->the_post();
$producttags = get_the_tags();
if ($producttags) {
foreach ((array)$producttags as $tag_obj) {
$all_tags[] = $tag_obj->term_id . '-' . $tag_obj->name;
}
}
};
$tags_array = array_unique($all_tags);
$new_array = array_map(function ($val) {
return explode("-", $val);
}, $tags_array);
return new_array;
}
上述函数将返回一个关联数组,其中包含您的 PRODUCT 类别的相应标签的 tag id 和 tag name。
旁注:
如果您需要将它用于您的 wordpress 网站的博客文章,那么您可以通过将 'post_type' => 'product' 参数与 'post_type' => 'posts' 交换来更改/修改查询。因此,您对博客文章的查询将是这样的:
$blog_tag_query = new WP_Query(array('post_type'=>'post','post_status' =>'publish','cat'=>$cat_id,'posts_per_page'=>-1));
如果您决定将它用于您的博客文章,还记得在您的模板中将get_term_link((int)$tag[0], 'product_tag') 更改为get_term_link((int)$tag[0], 'post_tag')。
现在您有了一个神奇的功能 :),您可以在任何需要特定类别标签列表的地方使用它!
所以让我们在你的页面模板中使用我们的函数来填充当前类别的相应标签,如下所示:
$cat_name = 'Coffee Equipment';
$tags_array = your_theme_get_tags_based_on_cat($cat_name);
foreach ($tags_array as $tag)
{
echo '<a class="item" href="' . get_term_link((int)$tag[0], 'product_tag') . '">' . $tag[1] . '</a>';
};
刚刚经过测试,可以无缝运行!随意在您的html template/markup 上根据需要对其进行自定义。