2013-06-26 112 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。