如何在wordpress中显示随机标签列表?

时间:2013-06-26 13:36:53

标签: wordpress random tags

我使用以下代码尝试显示随机标记列表:

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

这会显示5个标签的列表,但订单不是随机的,并且在重新加载页面时不会更改。

如何实现这一目标的任何帮助?

非常感谢。

1 个答案:

答案 0 :(得分:2)

我今晚正在寻找自己的答案,因为谷歌搜索结果相当高,我认为当我遇到它时,我会为其他人发布解决方案。

我的要求是显示每个页面刷新的随机标签以及排除某些标签的能力。为了我的目的,我把它放在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的最简单方法是转到帖子 - &gt;标记并将鼠标悬停在要排除的标记上。例如,当您悬停在&tag_ID=9上时,ID#将在浏览器底部的网址栏中显示。

  • get_tags的Wordpress codex表示只分隔一个空格,分隔每个标记ID,不需要逗号。

  • 关于随机化结果,遗憾的是rand不是$arg的可用选项或get_tags

  • 要更改显示的代码数量,请调整if ( $count >19 ) 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

  4. 用于get_tags的wordpress codex

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

    在您的模板文件中 - 无需任何功能

    <?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吮吸。