我们在wp开发过程中,如何需要自动获取当前分类下所有出现的标签,可以通过一下方法实现。
方法:使用 WP_Query 和 wp_get_post_tags
// 获取分类 ID 为 1 的所有已发布文章
$posts = get_posts([
'cat' => 1,
'posts_per_page' => -1,
'post_status' => 'publish'
]);
$tag_ids = [];
foreach ($posts as $post) {
$post_tags = wp_get_post_tags($post->ID);
foreach ($post_tags as $tag) {
$tag_ids[$tag->term_id] = $tag->term_id;
}
}
if (!empty($tag_ids)) {
$tags = get_tags([
'include' => $tag_ids
]);
foreach ($tags as $tag) {
echo '<a href="' . get_tag_link($tag->term_id) . '">' . $tag->name . '</a><br>';
}
}
更简洁的方案(使用 wp_get_object_terms):
$posts = get_posts([
'cat' => 1,
'posts_per_page' => -1,
'post_status' => 'publish'
]);
$post_ids = array_column($posts, 'ID');
if (!empty($post_ids)) {
$tags = wp_get_object_terms($post_ids, 'post_tag');
if (!is_wp_error($tags)) {
foreach ($tags as $tag) {
echo '<a href="' . get_tag_link($tag->term_id) . '">' . $tag->name . '</a><br>';
}
}
}
以上就是模板兔提供的方法,大家可以参考。


0 个评论