获取WordPress当前分类文章所有标签

2016年3月30日09:08:52 19 5,978

如果需要在分类列表页面,显示当前分类文章中添加的所有标签,方便读者阅读自己喜欢的内容,下面的代码可以帮你实现这个功能。

首先,在主题functions.php模板文件中添加以下函数:

展开代码展开

  1. functionget_category_tags($args){
  2. global$wpdb;
  3. $tags=$wpdb->get_results
  4. ("
  5. SELECTDISTINCTterms2.term_idastag_id,terms2.nameastag_name
  6. FROM
  7. $wpdb->postsasp1
  8. LEFTJOIN$wpdb->term_relationshipsasr1ONp1.ID=r1.object_ID
  9. LEFTJOIN$wpdb->term_taxonomyast1ONr1.term_taxonomy_id=t1.term_taxonomy_id
  10. LEFTJOIN$wpdb->termsasterms1ONt1.term_id=terms1.term_id,
  11. $wpdb->postsasp2
  12. LEFTJOIN$wpdb->term_relationshipsasr2ONp2.ID=r2.object_ID
  13. LEFTJOIN$wpdb->term_taxonomyast2ONr2.term_taxonomy_id=t2.term_taxonomy_id
  14. LEFTJOIN$wpdb->termsasterms2ONt2.term_id=terms2.term_id
  15. WHERE
  16. t1.taxonomy='category'ANDp1.post_status='publish'ANDterms1.term_idIN(".$args['categories'].")AND
  17. t2.taxonomy='post_tag'ANDp2.post_status='publish'
  18. ANDp1.ID=p2.ID
  19. ORDERbytag_name
  20. ");
  21. $count=0;
  22. if($tags){
  23. foreach($tagsas$tag){
  24. $mytag[$count]=get_term_by('id',$tag->tag_id,'post_tag');
  25. $count++;
  26. }
  27. }else{
  28. $mytag=NULL;
  29. }
  30. return$mytag;
  31. }

编译:http://www.ludou.org/wordpress-get-tags-specific-to-category.html

源代码出自:https://wordpress.org/support/topic/get-tags-specific-to-category

其次,将下面调用输出代码,添加到主题archive.php模板适当位置:

  1. <?php
  2. $cat=single_cat_title('',false);
  3. $args=array('categories'=>get_cat_ID($cat));
  4. $tags=get_category_tags($args);
  5. $content.="<ulclass='cat-tag'>";
  6. if(!empty($tags)){
  7. foreach($tagsas$tag){
  8. $content.="<li><ahref=\"".get_tag_link($tag->term_id)."\">".$tag->name."</a></li>";
  9. }
  10. }
  11. $content.="</ul>";
  12. echo$content;
  13. ?>

个人感觉放到头部调用函数:

  1. <?phpget_header();?>

下面比较合适。

最后,再适当加上样式即可:

  1. .cat-tag{
  2. float:left;
  3. width:100%;
  4. }
  5. .cat-taglia{
  6. float:left;
  7. margin:05px;
  8. }
weinxin
我的微信
分享交流WordPress经验与技巧,关注前端设计与网站制作。仅用于功能演示。
Begin主题购买
Begin主题购买

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:19   其中:访客  19   博主  0

    • 坊子帮 3

      学习了

      • 狂族晨曦 0

        这招厉害啊!

        • 寻金笔记 6

          学习了+1

          • boke112导航 5

            这个功能有时候挺实用的,是不是就像首页显示的那些标签一样?如果有效果图或能够看到成果的页面就更完美了

              • 赵林IT 3

                @boke112导航 测试,感觉做出来的效果很漂亮,和首页的效果好多了

              • 麻布兜 0

                这个具体有例子吗

                • boke112导航 5

                  这个方法好,我们可以在每一个分类页前面列出该分类的标签,挺实用的

                  • 美女图片全身一件不留 6

                    学习了 很实用

                    • 青仙 0

                      有实例看看效果吗

                      • zzu 0

                        手机浏览时跟随滚动的二维码,很鸡肋,想扫吧,自己咋扫自己?建议改成分享按钮,比较实用。

                        • 某喵的光 1

                          get_category_tags,有这个函数么。。

                            • 某喵的光 1

                              @某喵的光 好吧,我没看见function里面也要加代码。不过不加的话,直接用get_tags好像也可以吧。。

                            • 卢松松商城 1

                              很好。学习了

                              • 蜗牛 2

                                实用。

                                • rhodiu 0

                                  我不想展示某个id的tag 比如说 排除 id 15 和16的tag 怎么修改呢 请指教

                                  • 541805894 0

                                    的撒大大

                                    • 优选汇 2

                                      没有起作用啊,哪个帮帮我

                                      • 野图 0

                                        你好,请教一下,目前这代码调用的标签是链接到tag页面,怎么把链接改成当前页面加上tag参数呢?xxx.com/当前页面?tag=标签名称。