wordpress 随机标签问题 [英] wordpress random tag issue
问题描述
我在使用 wordpress Tag CLoud 插件时遇到问题.
我想显示随机标签,但我很困惑如何做到这一点.
代码如下.
我想显示随机标签.就像我选择只显示 5 个标签,并且每次我刷新屏幕时,标签应该随机出现.
function widget_tagcloud($args){$option_value =retrieve_options($opt_val);提取($args);回声 $before_widget;回声 $before_title;回声 $option_value['title'];回声 $after_title;全球 $wpdb;$tags_list = get_terms('post_tag', array('orderby' =>'数数','hide_empty' =>0));if(sizeof($tags_list)!=0){$max_count = 0;if(!empty($option_value['height'])) $canvas_height = $option_value['height'];否则 $canvas_height = "250";if(!empty($option_value['width'])) $canvas_width = $option_value['width'];否则 $canvas_width = "250";foreach($tags_list as $tag) if($tag->count > $max_count) $max_count = $tag->count;?><div id="myCanvasContainer"><canvas width="<?php echo $canvas_width;?>"height="<?php echo $canvas_height;?>"id="myCanvas"><p>标签</p></画布>
<div id="标签"><ul style="字体系列:<?php if(!empty($option_value['font_name'])) echo $option_value['font_name'];else echo "Calibri";?>;高度:<?phpif(!empty($option_value['height'])) echo $option_value['height'];否则回声250";?>px;宽度:<?phpif(!empty($option_value['width'])) echo $option_value['width'];否则回声250";?>px;背景颜色:#<?php if(!empty($option_value['bg_color'])) echo $option_value['bg_color'];否则回声FFF";?>;><?phpif(empty($option_value['no_of_tags'])) $option_value['no_of_tags'] = 15;if(empty($option_value['txt_color'])) $option_value['txt_color'] = "000";if(empty($option_value['max_font_size'])) $option_value['max_font_size'] = 40;if(empty($option_value['min_font_size'])) $option_value['max_font_size'] = 3;$i=1;foreach($tags_list 作为 $tag){if($i <= $option_value['no_of_tags']){$font_size = $option_value['max_font_size'] - (($max_count - $tag->count)*2);if($font_size < $option_value['min_font_size']) $font_size = $option_value['min_font_size'];echo '<li><a href="'.$_SERVER['PHP_SELF'].'?tag='.$tag->slug.'"style="font-size:'.$font_size.'px;color: #'.$option_value['txt_color'].';">'.$tag->name.'</a></li>';$i++;}}回声'</ul></div>';}else echo "未找到标签";回声 $after_widget;}
根据你的代码:(特别是这部分)
$tags_list = get_terms('post_tag', array('orderby' =>'数数','hide_empty' =>0));
您获得的 tags
是按 count
排序的,因此 - 它们不是随机选择的.
您可以尝试使用下一个代码:
$tags_list = get_terms('post_tag', array('数字' =>5、'orderby' =>'没有任何','hide_empty' =>0));
如果这不起作用,请使用 mysql
的 RAND
函数构建自定义查询.
根据您的代码,您可以使用 shuffle()
php 函数更轻松.
只需替换:
$max_count = 0;
与:
$max_count = 5;洗牌($tags_list);
I am having issue with a wordpress Tag CLoud Plugin.
I want to show random tags but i am confused how to do this.
the codes are given below.
I want to show random tags. like if i select to show just 5 tags and when each time i refrest the screen the tags should appear randomly.
function widget_tagcloud($args){
$option_value = retrieve_options($opt_val);
extract($args);
echo $before_widget;
echo $before_title;
echo $option_value['title'];
echo $after_title;
global $wpdb;
$tags_list = get_terms('post_tag', array(
'orderby' => 'count',
'hide_empty' => 0
));
if(sizeof($tags_list)!=0){
$max_count = 0;
if(!empty($option_value['height'])) $canvas_height = $option_value['height'];
else $canvas_height = "250";
if(!empty($option_value['width'])) $canvas_width = $option_value['width'];
else $canvas_width = "250";
foreach($tags_list as $tag) if($tag->count > $max_count) $max_count = $tag->count;?>
<div id="myCanvasContainer">
<canvas width="<?php echo $canvas_width;?>" height="<?php echo $canvas_height;?>" id="myCanvas">
<p>Tags</p>
</canvas>
</div>
<div id="tags">
<ul style="
font-family: <?php if(!empty($option_value['font_name'])) echo $option_value['font_name'];
else echo "Calibri";?>;
height:
<?php
if(!empty($option_value['height'])) echo $option_value['height'];
else echo "250";
?>px;
width:
<?php
if(!empty($option_value['width'])) echo $option_value['width'];
else echo "250";
?>px;
background-color: #<?php if(!empty($option_value['bg_color'])) echo $option_value['bg_color'];
else echo "FFF";?>;
">
<?php
if(empty($option_value['no_of_tags'])) $option_value['no_of_tags'] = 15;
if(empty($option_value['txt_color'])) $option_value['txt_color'] = "000";
if(empty($option_value['max_font_size'])) $option_value['max_font_size'] = 40;
if(empty($option_value['min_font_size'])) $option_value['max_font_size'] = 3;
$i=1;
foreach($tags_list as $tag){
if($i <= $option_value['no_of_tags']){
$font_size = $option_value['max_font_size'] - (($max_count - $tag->count)*2);
if($font_size < $option_value['min_font_size']) $font_size = $option_value['min_font_size'];
echo '<li><a href="'.$_SERVER['PHP_SELF'].'?tag='.$tag->slug.'"
style="font-size:'.$font_size.'px;color: #'.$option_value['txt_color'].';">'
.$tag->name.'</a></li>';
$i++;
}
}
echo '</ul></div>';
}
else echo "No tags found";
echo $after_widget;
}
Accordind to your code: (this part especially)
$tags_list = get_terms('post_tag', array(
'orderby' => 'count',
'hide_empty' => 0
));
The tags
which you get are ordered by count
, therefore - they are not randomly picked.
You can try and use the next code:
$tags_list = get_terms('post_tag', array(
'number' => 5,
'orderby' => 'none',
'hide_empty' => 0
));
And if that doesn't work , build a customized query using the RAND
function of mysql
.
EDIT: based on your code , you can do is even easier by using the shuffle()
php function.
Just replace:
$max_count = 0;
With:
$max_count = 5;
shuffle($tags_list);
这篇关于wordpress 随机标签问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!