我得到了“最受欢迎的标签”wordpress插件,所以我可以在我的网站上显示标签,但它显示了一堆通用标签。有没有我可以添加的代码,允许我在我的网站上显示最受欢迎的标签,可以选择排除我不想要的标签?或者允许这个的插件?
答案 0 :(得分:1)
此代码将返回过去30天内最常用的代码。有了一点jQuery和CSS,你可以自定义,例如,在第一个上放一个大字体,在最后一个上放一个小字体。
<ul id="footer-tags">
<?php $wpdb->show_errors(); ?>
<?php
global $wpdb;
$term_ids = $wpdb->get_col("
SELECT term_id FROM $wpdb->term_taxonomy
INNER JOIN $wpdb->term_relationships ON $wpdb->term_taxonomy.term_taxonomy_id=$wpdb->term_relationships.term_taxonomy_id
INNER JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->term_relationships.object_id
WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= $wpdb->posts.post_date");
if(count($term_ids) > 0){
$tags = get_tags(array(
'orderby' => 'count',
'order' => 'DESC',
'number' => 28,
'include' => $term_ids,
));
foreach ( (array) $tags as $tag ) {
echo '<li><a href="' . get_tag_link ($tag->term_id) . '" rel="tag">' . $tag->name . '</a></li>';
}
}
?>
</ul>
答案 1 :(得分:1)
我认为get_tags-&gt;计数并不真正计算范围内的标记。我已经实现了这个解决方案,请告诉我这是否适合您:
<?php
global $wpdb;
$term_ids = $wpdb->get_col("
SELECT term_id , count(*) cont FROM $wpdb->term_taxonomy
INNER JOIN $wpdb->term_relationships ON $wpdb->term_taxonomy.term_taxonomy_id=$wpdb->term_relationships.term_taxonomy_id
INNER JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->term_relationships.object_id
WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= $wpdb->posts.post_date AND $wpdb->term_taxonomy.taxonomy='post_tag'
GROUP BY term_id
ORDER BY cont DESC
LIMIT 5");
if(count($term_ids) > 0){
$tags = get_tags(array(
'orderby' => 'count',
'order' => 'DESC',
'number' => 5,
'include' => $term_ids,
));
foreach ( (array) $tags as $tag ) {
echo '<li><a href="' . get_tag_link ($tag->term_id) . '" rel="tag">' . $tag->name . '</a></li>';
}
}
?>
答案 2 :(得分:1)
我看到的解决方案涉及编写自定义查询或插件。当您询问特定插件时,请知道这可以通过纯WP完成。这有两个选择:
首先,您可以使用wp_tag_cloud
创建标记云,并按count
对其进行排序,如下所示:
$tags = wp_tag_cloud(array(
'echo' => false,
'orderby' => 'count',
'order' => 'DESC'
));
您可以使用exclude
参数排除某些代码。您还可以自定义字体大小输出,或者只使用CSS忽略标记云字体大小。
另一种选择是使用get_terms
,可以这样使用:
$tags = get_terms(array(
'taxonomy' => 'post_tag',
'orderby' => 'count',
'order' => 'DESC',
));
我个人是第二个get_terms
选项的粉丝。与wp_tag_cloud
一样,您可以通过exclude
参数传递要排除的ID列表。