Ian*_*ten 0 tags random wordpress
我使用以下代码尝试显示随机标签列表:
<?php wp_tag_cloud('smallest=10&largest=10&number=5&format=list&order=rand&orderby=count'); ?>
Run Code Online (Sandbox Code Playgroud)
这确实显示了5个标签的列表,但是顺序不是随机的,并且在我重新加载页面时不会改变。
如何实现这一目标有帮助吗?
非常感谢。
今晚我一直在寻找一个答案,因为在Google搜索结果中这个结果很高,我想我会在遇到其他问题时为他人发布解决方案。
我的要求是在每次页面刷新时显示随机标签,并具有排除某些标签的能力。出于我的目的,我将其放在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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
通话 -将其插入您的模板页面
<?php jr_get_tags_but_exclude(); ?>
Run Code Online (Sandbox Code Playgroud)
笔记
要排除标签,您需要标签ID。获取ID的最简单方法是转到posts->标签,然后将鼠标悬停在要排除的标签上。鼠标悬停在时,ID号将显示在浏览器底部的网址栏中&tag_ID=9。
的Wordpress Codex get_tags表示仅将每个标签ID隔开,无需逗号。
对于随机化的结果,rand是不是一种可行的选择或$arg对get_tags,很遗憾。
要更改显示的标签数量,请调整if ( $count >19 )19 = 20个标签,29 = 30等。
shuffle($alltags); 随机化是什么
$count=0;启动计数器,$count++;对发布的每个标签进行计数,if( $count >19 ) break;结束循环(在这种情况下,发布20个标签之后)。
学分和参考
主要基于这些绅士的解决方案
用于get_tags的wordpress抄本
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;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
请以发现的任何错误答复,以便我进行编辑。我半睡着了,甚至在清醒的时候仍在使用PHP。
| 归档时间: |
|
| 查看次数: |
2465 次 |
| 最近记录: |