2012-12-15 114 views
3

我得到了「最流行的標籤」wordpress插件,所以我可以在我的網站上顯示標籤,但它顯示了一堆通用標籤。有沒有我可以添加的代碼,可以讓我在我的網站上顯示最受歡迎的標籤,並且可以選擇排除我不想要的標籤?或者一個允許這個的插件?顯示最熱門標籤?

+0

難道你不能通過WP中的Widgets菜單來配置它嗎? – BenM

+0

@BenM你的意思是插件還是沒有插件? –

回答

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> 
2

我覺得get_tags-> count並沒有真正的計算範圍內的標籤。我已經實現這個解決方案,請讓我知道這對你的作品:

<?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>'; 
} 
} 
?> 
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列表。