2013-06-26 54 views
0

我用下面的代碼來嘗試和隨機顯示標籤的列表:如何在wordpress中顯示隨機標籤列表?

<?php wp_tag_cloud('smallest=10&largest=10&number=5&format=list&order=rand&orderby=count'); ?> 

這並顯示5個標籤的列表,但秩序不亂,當我重新加載不會改變這一頁。

如何實現這一目標的任何幫助?

非常感謝。

回答

1

我今晚正在尋找自己的答案,因爲這在谷歌搜索結果中相當高,所以我想我會在遇到它時爲他人發佈解決方案。

我的要求是顯示每個頁面刷新的隨機標籤以及排除某些標籤的能力。爲了我的目的,我把它放在functions.php中,因爲我討厭用功能混淆我的模板文件。

的功能 - 在你的functions.php文件

function jr_get_tags_but_exclude() { 
    $args = array('exclude' => '36 17'); // see notes below 
     $alltags = get_tags($args); 
     shuffle($alltags); 
     $count=0; 
     if ($alltags) { 
      foreach($alltags as $tag) { 
       $count++; 
       echo '<a href="'.get_tag_link($tag->term_id).'">'.$tag->name.'</a>'; 
     if($count >19) break; 
     } 
    } 
} 

呼叫插入此 - 在你的模板頁面

<?php jr_get_tags_but_exclude(); ?> 

注意插入此

  • 要排除標籤,您將需要標籤ID。獲取ID最簡單的方法是轉到posts - >標籤並將鼠標懸停在您想要排除的標籤上。例如,Id#懸停時位於瀏覽器底部的url欄中,即&tag_ID=9

  • get_tags的WordPress代碼表示只放置一個空格分隔每個標籤ID,不需要逗號。

  • 關於隨機化結果,rand不是可用選項或$arg對於get_tags,不幸的是。

  • 要改變的調整示出19 if ($count >19) = 20層的標籤的標籤的數量,29 = 30,等

  • shuffle($alltags);是什麼呢隨機化

  • $count=0;啓動計數器,計數$count++;每個標籤發佈,if($count >19) break;結束循環,在這種情況下20個標籤發佈後。

現金和參考

主要是基於這些紳士的解決方案

  1. wordpress random tag issue

  2. https://wordpress.stackexchange.com/questions/26112/how-to-limit-and-display-tag

  3. http://wordpress.org/support/topic/php-exclude-tag

爲get_tags

http://codex.wordpress.org/Function_Reference/get_tags

在你的模板文件 WordPress的食品 - 無功能需要

<?php 
    $args = array('exclude' => '36 17'); // see notes below 
     $alltags = get_tags($args); 
     shuffle($alltags); 
     $count=0; 
     if ($alltags) { 
      foreach($alltags as $tag) { 
       $count++; 
       echo '<a href="'.get_tag_link($tag->term_id).'">'.$tag->name.'</a>'; 
     if($count >19) break; 
     } 
    } 
?> 

請任何錯誤回覆發現,所以我可以編輯。即使在我清醒的時候,我仍然半夢半醒,並且很喜歡PHP。