如果需要在分類列表頁面,顯示當前分類文章中添加的所有標簽,方便讀者閱讀自己喜歡的內容,下面的代碼可以幫你實現這個功能。
首先,在主題functions.php模板文件中添加以下函數:
展開代碼:展開
- function?get_category_tags($args)?{
- ????global?$wpdb;
- ????$tags?=?$wpdb->get_results
- ????("
- ????????SELECT?DISTINCT?terms2.term_id?as?tag_id,?terms2.name?as?tag_name
- ????????FROM
- ????????????$wpdb->posts?as?p1
- ????????????LEFT?JOIN?$wpdb->term_relationships?as?r1?ON?p1.ID?=?r1.object_ID
- ????????????LEFT?JOIN?$wpdb->term_taxonomy?as?t1?ON?r1.term_taxonomy_id?=?t1.term_taxonomy_id
- ????????????LEFT?JOIN?$wpdb->terms?as?terms1?ON?t1.term_id?=?terms1.term_id,
- ????????????$wpdb->posts?as?p2
- ????????????LEFT?JOIN?$wpdb->term_relationships?as?r2?ON?p2.ID?=?r2.object_ID
- ????????????LEFT?JOIN?$wpdb->term_taxonomy?as?t2?ON?r2.term_taxonomy_id?=?t2.term_taxonomy_id
- ????????????LEFT?JOIN?$wpdb->terms?as?terms2?ON?t2.term_id?=?terms2.term_id
- ????????WHERE
- ????????????t1.taxonomy?=?'category'?AND?p1.post_status?=?'publish'?AND?terms1.term_id?IN?(".$args['categories'].")?AND
- ????????????t2.taxonomy?=?'post_tag'?AND?p2.post_status?=?'publish'
- ????????????AND?p1.ID?=?p2.ID
- ????????ORDER?by?tag_name
- ????");
- ????$count?=?0;
- ????if($tags)?{
- ????????foreach?($tags?as?$tag)?{
- ????????????$mytag[$count]?=?get_term_by('id',?$tag->tag_id,?'post_tag');
- ????????????$count++;
- ????????}
- ????}?else?{
- ??????$mytag?=?NULL;
- ????}
- ????return?$mytag;
- }
編譯:http://www.ludou.org/WordPress-get-tags-specific-to-category.html
源代碼出自:https://wordpress.org/support/topic/get-tags-specific-to-category
其次,將下面調用輸出代碼,添加到主題archive.php模板適當位置:
- <?php
- ????$cat=?single_cat_title('',?false);
- ????$args?=?array(?'categories'?=>?get_cat_ID($cat));
- ????$tags?=?get_category_tags($args);
- ????$content?.=?"<ul?class='cat-tag'>";
- ????if(!empty($tags))?{
- ????????foreach?($tags?as?$tag)?{
- ????????????$content?.=?"<li><a?href=\"".get_tag_link($tag->term_id)."\">".$tag->name."</a></li>";
- ????????}
- ????}
- ????$content?.=?"</ul>";
- ????echo?$content;
- ?>
個人感覺放到頭部調用函數:
- <?php?get_header();??>
下面比較合適。
最后,再適當加上樣式即可:
- .cat-tag{
- ????float:?left;
- ????width:?100%;
- }
- .cat-tag?li?a{
- ????float:?left;
- ????margin:?0?5px;
- }
繼續閱讀

關于本站
分享交流WordPress經驗與技巧,關注前端設計與網站制作。僅用于功能演示。
2016年3月30日 09點12分 1F
學習了
2016年3月30日 09點53分 2F
這招厲害啊!
2016年3月30日 11點46分 3F
學習了+1
2018年7月27日 20點54分 1B
@ 尋金筆記 學習加3
2016年3月31日 16點34分 4F
這個功能有時候挺實用的,是不是就像首頁顯示的那些標簽一樣?如果有效果圖或能夠看到成果的頁面就更完美了
2016年4月9日 11點59分 1B
@ boke112導航 測試,感覺做出來的效果很漂亮,和首頁的效果好多了
2016年3月31日 22點41分 5F
這個具體有例子嗎
2016年4月2日 08點20分 6F
這個方法好,我們可以在每一個分類頁前面列出該分類的標簽,挺實用的
2016年4月2日 12點44分 7F
學習了 很實用
2016年4月2日 16點21分 8F
有實例看看效果嗎
2016年4月10日 19點16分 9F
手機瀏覽時跟隨滾動的二維碼,很雞肋,想掃吧,自己咋掃自己?建議改成分享按鈕,比較實用。
2016年6月1日 11點11分 10F
get_category_tags,有這個函數么。。
2016年6月1日 11點16分 1B
@ 某喵的光 好吧,我沒看見function里面也要加代碼。不過不加的話,直接用get_tags好像也可以吧。。
2016年7月4日 12點29分 11F
很好。學習了
2016年7月31日 14點00分 12F
實用。
2016年9月9日 09點32分 13F
我不想展示某個id的tag 比如說 排除 id 15 和16的tag 怎么修改呢 請指教
2017年4月7日 00點01分 14F
的撒大大
2017年10月26日 22點56分 15F
沒有起作用啊,哪個幫幫我
2018年1月22日 10點05分 16F
你好,請教一下,目前這代碼調用的標簽是鏈接到tag頁面,怎么把鏈接改成當前頁面加上tag參數呢?xxx.com/當前頁面?tag=標簽名稱。