如果需要在分类列表页面,显示当前分类文章中添加的所有标签,方便读者阅读自己喜欢的内容,下面的代码可以帮你实现这个功能。
首先,在主题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;
}
其次,将下面调用输出代码,添加到主题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;
}
© 版权声明
1. 资源都是经过站长或作者收集测试修改后发布分享。如若转载请在文内以超链形式注明狐狸库文章出处,谢谢合作!
2. 本站除原创内容,其余所有内容均收集自互联网,仅限用于学习和研究目的,本站不对其内容的合法性承担任何责任。如有版权内容,请通知我们或作者删除,其版权均归原作者所有,本站虽力求保存原有版权信息,但因众多资源经多次转载,已无法确定其真实来源,或已将原有信息丢失,所以敬请原作者谅解!
3. 本站用户所发布的一切资源内容不代表本站立场,并不代表本站赞同其观点和对其真实性负责,若您对本站所载资源作品版权归属存有异议,请留言附说明联系邮箱,我们将在第一时间予以处理 ,同时向您表示歉意!为尊重作者版权,请购买原版作品,支持您喜欢的作者,谢谢!
4. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客如有发现请立即向站长举报;本站资源文件大多存储在云盘,如发现链接或图片失效,请联系作者或站长及时更新。
THE END
请登录后查看评论内容