WordPress获取当前分类下所有文章里出现的标签tag
我们在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>'; } } }
以上就是模板兔提供的方法,大家可以参考。