wordpress 随机标签问题 [英] wordpress random tag issue

查看:66
本文介绍了wordpress 随机标签问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用 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));

如果这不起作用,请使用 mysqlRAND 函数构建自定义查询.

根据您的代码,您可以使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆