当前位置:首页>WordPress>WordPress教程>如何获取指定分类文章下的所有标签-WordPress教程

如何获取指定分类文章下的所有标签-WordPress教程

标签不依赖于类别,它们是独立的。说到这里,让某个特定类别中的所有标签都处于使用状态的唯一方法是浏览该类别中的每个帖子,并获取每个帖子的标签

在WordPress中没有本地的方法可以做到这一点。原因是标签不依赖于类别,它们是分开的。说到这里,让某个特定类别中的所有标签都在使用的唯一方法是浏览该类别中的每个帖子,并获取每个帖子的标签。

原始来源:详情

我已经编写了一个快速函数来实现这一点。

(包括子类别和帖子中的所有标签)

把这个函数放到你的functions.php文件里。

function get_tags_in_use($category_ID, $type = 'name'){
    // Set up the query for our posts
    $my_posts = new WP_Query(array(
      'cat' => $category_ID, // Your category id
      'posts_per_page' => -1 // All posts from that category
    ));
    // Initialize our tag arrays
    $tags_by_id = array();
    $tags_by_name = array();
    $tags_by_slug = array();
    // If there are posts in this category, loop through them
    if ($my_posts->have_posts()): while ($my_posts->have_posts()): $my_posts->the_post();
      // Get all tags of current post
      $post_tags = wp_get_post_tags($my_posts->post->ID);
      // Loop through each tag
      foreach ($post_tags as $tag):
        // Set up our tags by id, name, and/or slug
        $tag_id = $tag->term_id;
        $tag_name = $tag->name;
        $tag_slug = $tag->slug;
        // Push each tag into our main array if not already in it
        if (!in_array($tag_id, $tags_by_id))
          array_push($tags_by_id, $tag_id);
        if (!in_array($tag_name, $tags_by_name))
          array_push($tags_by_name, $tag_name);
        if (!in_array($tag_slug, $tags_by_slug))
          array_push($tags_by_slug, $tag_slug);
      endforeach;
    endwhile; endif;
    // Return value specified
    if ($type == 'id')
        return $tags_by_id;
    if ($type == 'name')
        return $tags_by_name;
    if ($type == 'slug')
        return $tags_by_slug;
}

 
然后,当您要获取特定类别的标签时,请像下面这样调用此函数:

// First paramater is the category and the second paramater is how to return the tag (by name, by id, or by slug)
// Leave second paramater blank to default to name
$tags = get_tags_in_use(59, 'name');

希望这可以帮助。

  编辑:

  这是您需要与其他功能结合使用的功能:

function tag_cloud_by_category($category_ID){
    // Get our tag array
    $tags = get_tags_in_use($category_ID, 'id');
    // Start our output variable
    echo '
'; // Cycle through each tag and set it up foreach ($tags as $tag): // Get our count $term = get_term_by('id', $tag, 'post_tag'); $count = $term->count; // Get tag name $tag_info = get_tag($tag); $tag_name = $tag_info->name; // Get tag link $tag_link = get_tag_link($tag); // Set up our font size based on count $size = 8 + $count; echo ''; echo ''.$tag_name.''; echo ' '; endforeach; echo '
'; }

因此,您可以像下面这样简单地使用此功能:

tag_cloud_by_category($cat_id);

©版权声明

本站资源大多来自网络,如有侵犯你的权益请联系管理员Ciyol 或给邮箱发送邮件 admin@ciyol.cn 我们会第一时间进行审核删除。站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除!


如果遇到评论下载的文章,评论后刷新页面点击对应的蓝字按钮即可跳转到下载页面本站资源少部分采用7z压缩,为防止有人压缩软件不支持7z格式,7z解压,建议下载7-zip(点击下载),zip、rar解压,建议下载WinRAR(点击下载)

给TA打赏
共{{data.count}}人
人已打赏
0 条回复A文章作者M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
今日签到
有新私信 私信列表
搜索