獲取WordPress當前分類文章所有標簽

知更鳥
知更鳥
知更鳥
1515
文章
6913
評論
2016年3月30日09:08:52 19 7.3K

如果需要在分類列表頁面,顯示當前分類文章中添加的所有標簽,方便讀者閱讀自己喜歡的內容,下面的代碼可以幫你實現這個功能。

獲取WordPress當前分類文章所有標簽

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

展開代碼展開

  1. function?get_category_tags($args)?{
  2. ????global?$wpdb;
  3. ????$tags?=?$wpdb->get_results
  4. ????("
  5. ????????SELECT?DISTINCT?terms2.term_id?as?tag_id,?terms2.name?as?tag_name
  6. ????????FROM
  7. ????????????$wpdb->posts?as?p1
  8. ????????????LEFT?JOIN?$wpdb->term_relationships?as?r1?ON?p1.ID?=?r1.object_ID
  9. ????????????LEFT?JOIN?$wpdb->term_taxonomy?as?t1?ON?r1.term_taxonomy_id?=?t1.term_taxonomy_id
  10. ????????????LEFT?JOIN?$wpdb->terms?as?terms1?ON?t1.term_id?=?terms1.term_id,
  11. ????????????$wpdb->posts?as?p2
  12. ????????????LEFT?JOIN?$wpdb->term_relationships?as?r2?ON?p2.ID?=?r2.object_ID
  13. ????????????LEFT?JOIN?$wpdb->term_taxonomy?as?t2?ON?r2.term_taxonomy_id?=?t2.term_taxonomy_id
  14. ????????????LEFT?JOIN?$wpdb->terms?as?terms2?ON?t2.term_id?=?terms2.term_id
  15. ????????WHERE
  16. ????????????t1.taxonomy?=?'category'?AND?p1.post_status?=?'publish'?AND?terms1.term_id?IN?(".$args['categories'].")?AND
  17. ????????????t2.taxonomy?=?'post_tag'?AND?p2.post_status?=?'publish'
  18. ????????????AND?p1.ID?=?p2.ID
  19. ????????ORDER?by?tag_name
  20. ????");
  21. ????$count?=?0;
  22. ????if($tags)?{
  23. ????????foreach?($tags?as?$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?.=?"<ul?class='cat-tag'>";
  6. ????if(!empty($tags))?{
  7. ????????foreach?($tags?as?$tag)?{
  8. ????????????$content?.=?"<li><a?href=\"".get_tag_link($tag->term_id)."\">".$tag->name."</a></li>";
  9. ????????}
  10. ????}
  11. ????$content?.=?"</ul>";
  12. ????echo?$content;
  13. ?>

個人感覺放到頭部調用函數:

  1. <?php?get_header();??>

下面比較合適。

最后,再適當加上樣式即可:

  1. .cat-tag{
  2. ????float:?left;
  3. ????width:?100%;
  4. }
  5. .cat-tag?li?a{
  6. ????float:?left;
  7. ????margin:?0?5px;
  8. }
繼續閱讀
weinxin
關于本站
分享交流WordPress經驗與技巧,關注前端設計與網站制作。僅用于功能演示。
知更鳥
WordPress 只允許游客瀏覽指定分類的文章 WordPress

WordPress 只允許游客瀏覽指定分類的文章

有童鞋問,如何實現未登錄用戶只能瀏覽指定的分類文章,這里提供一下方法。 只允許游客瀏覽指定分類的文章 網上可以找到類似的代碼: //template_redirect動作鉤子是一定會執行的,所以用這個...
盜版主題很可怕! WordPress

盜版主題很可怕!

主題森林相信國內 WordPress 用戶都很熟習,來自該網站的收費主題在國內盜版橫行,一些無良者對主題進行所謂優化、漢化后直接出售,更有甚者居然還有冒充國內代理的。主題森林大部分主題并不像國內主題需...
限制 WordPress 部分用戶角色進入后臺 WordPress

限制 WordPress 部分用戶角色進入后臺

有時我們想限制WordPress 部分用戶角色訪問后臺,可以通過下面的代碼實現。 限制 WordPress 部分用戶角色進入后臺 一、只允許管理員、編輯和作者角色訪問后臺 將下面代碼添加到當前主題函數...
匿名

發表評論

匿名網友 填寫信息

:?: :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導航 boke112導航 5

            這個功能有時候挺實用的,是不是就像首頁顯示的那些標簽一樣?如果有效果圖或能夠看到成果的頁面就更完美了

            • 麻布兜 麻布兜 0

              這個具體有例子嗎

              • boke112導航 boke112導航 5

                這個方法好,我們可以在每一個分類頁前面列出該分類的標簽,挺實用的

                • 美女圖片全身一件不留 美女圖片全身一件不留 5

                  學習了 很實用

                  • 青仙 青仙 0

                    有實例看看效果嗎

                    • zzu zzu 0

                      手機瀏覽時跟隨滾動的二維碼,很雞肋,想掃吧,自己咋掃自己?建議改成分享按鈕,比較實用。

                      • 某喵的光 某喵的光 1

                        get_category_tags,有這個函數么。。

                          • 某喵的光 某喵的光 1

                            @ 某喵的光 好吧,我沒看見function里面也要加代碼。不過不加的話,直接用get_tags好像也可以吧。。

                          • 盧松松商城 盧松松商城 1

                            很好。學習了

                            • 蝸牛 蝸牛 2

                              實用。

                              • rhodiu rhodiu 0

                                我不想展示某個id的tag 比如說 排除 id 15 和16的tag 怎么修改呢 請指教

                                • 541805894 541805894 0

                                  的撒大大

                                  • 優選匯 優選匯 2

                                    沒有起作用啊,哪個幫幫我

                                    • 野圖 野圖 0

                                      你好,請教一下,目前這代碼調用的標簽是鏈接到tag頁面,怎么把鏈接改成當前頁面加上tag參數呢?xxx.com/當前頁面?tag=標簽名稱。