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

如果需要在分类列表页面,显示当前分类文章添加的所有标签,方便读者阅读自己喜欢的内容,下面的代码可以帮你实现这个功能。首先,在主题 unctions.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]-获取WordPress当前分类文章所有标签-99资源网
© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论