wp_generate_tag_cloud生成标签(WP_术语[] $个标签,字符串|数组 $个参数 =  ):字符串|字符串[]

从提供的数据生成标记云(heatmap)。

参数

$个标签WP_术语[]必修的
的数组WP_术语要为其生成标记云的对象。
$个参数一串|阵列可选择的
用于生成标记云的参数数组或字符串。
  • 最小的 整数
    用于显示标记的最小字体大小。与的值配对单位:美元,以确定CSS文本大小单位。默认值为8(pt)。
  • 最大的 整数
    用于显示标记的最大字体大小。与的值配对单位:美元,以确定CSS文本大小单位。默认为22(pt)。
  • 单元 一串
    用于的CSS文本大小单位$最小$最大值。接受任何有效的CSS文本大小单位。违约“pt”.
  • 整数
    要返回的标记数。接受任何正整数或零以返回全部。
    默认值为0。
  • 格式 一串
    用于显示标记云的格式。接受“扁平”(标签用空格隔开),'列表'(标签显示在无序列表中),或“数组”(返回数组)。
    违约“扁平”.
  • 分离器 一串
    HTML或文本来分隔标记。默认值“n”(换行符)。
  • 排序子句 一串
    标记排序依据的值。接受“名称”“计数”.
    违约“名称”. The'标记云排序'过滤器还可以影响标签的排序方式。
  • 秩序 一串
    如何订购标签。接受“ASC”(升序),“DESC”(下降),或“兰德”(随机)。违约“ASC”.
  • 滤波器 int |布尔
    是否通过启用最终输出的过滤'wp_generate_tag_cloud'。默认值为1。
  • 主题计数文本 阵列
    Nooped复数文本来自_n_noop()提供标签计数。默认为null。
  • 主题计数文本回调 可调用的
    回调用于根据计数为标记计数生成嵌套复数文本。默认为null。
  • 主题计数缩放回调 可调用的
    用于确定标记计数缩放值的回调。违约default_topic_count_scale().
  • show_count(显示_计数) 布尔|int
    是否显示标记计数。默认值为0。接受0、1或它们的布尔等价物。

违约:''

返回

string|string[]将云标记为字符串或数组,具体取决于'格式'论点。

来源

函数wp_generate_tag_cloud($tags,$args=“”){$defaults=数组(“最小”=>8,“最大”=>22,“单元”=>“pt”,'数字'=>0,“format”=>“flat”,'分隔符'=>“\n”,“orderby”=>“name”,“订单”=>“ASC”,“topic_count_text”=>空,“topic_count_text_callback”=>空,“topic_count_scale_callback”=>“default_topic_count_scale”,“过滤器”=>1,“show_count”=>0,);$args=wp_parse_args($args,$defaults);$return=(“数组”===$args[“格式”])?数组():“”;if(空($tags)){return$return;}//争论话题很重要。if(isset($args['topic_count_text'])){//首先通过topic_count_text查找nooped复数支持。$translate_nooped_plural=$args['topic_count_text'];}elseif(!空($args['topic_count_text_callback']){//寻找其他回调样式。忽略上一个默认值。if(“default_topic_count_text”===$args[“topic_count-text_callback”]){/*转换器:%s:项目数(标记)*/$translate_nooped_plural=_n_noop(“%s项”,“%s项“);}其他{$translate_nooped_plural=假;}}elseif(isset($args['single_text'])&&isset($args['多文本'])){//如果不存在回调,请查找老式的single_text和multiple_text参数。//phpcs:忽略WordPress。工作包。118n。NonSingularStringLiteralSingular,WordPress。工作包。118n。非SingularStringLiteral复数$translate_nooped_plural=_n_noop($args['single_text'],$args['multiple_text']);}其他{//这是没有传入回调、复数或参数时的默认值。/*转换器:%s:项目数(标记)*/$translate_nooped_plural=_n_noop(“%s项”,“%s项“);}/***过滤标记云中项目的排序方式。**@自2.8.0起**@param WP_Term[]$tags术语的有序数组。*@param array$args标记云参数的数组。*/$tags_sorted=应用过滤器('tag_cloud_sort',$tags,$args);if(空($tags_sorted)){return$return;}if($tags_sorted!==$tags){$tags=$tags_sorted;取消设置($tags_sorted);}其他{if('RAND'===$args['order']){洗牌($tags);}其他{//SQL无法保存您;这是对数据子集的第二种排序(可能不同)。if(“名称”===$args['orderby']){uasort($标签,'_wp_object_name_sort_cb');}其他{uasort($标签,'_wp_object_count_sort_cb');}if('DESC'===$args['order']){$tags=array_reverse($tags,true);}}}if($args['number']>0){$tags=array_slice($tags,0,$args['number']);}$counts=数组();$real_counts=数组();//对于alt标记。foreach((数组)$tags作为$key=>$tag){$real_counts[$key]=$tag->count;$counts[$key]=call_user_func($args['topic_count_scale_callback'],$tag->count);}$min_count=分钟($counts);$spread=最大值($counts)-$min_count;如果(价差$<=0){价差=1;}$font_spread=$args['最大']-$args['最小'];if($font_spread<0){$font_spread=1;}$font_step=$font_spread/$spread;$aria_label=false;/**确定是否输出带有标记名和计数的“aria-label”属性。*当标签的字体大小不同时,它们在视觉上传达了重要信息*这也应该适用于辅助技术。另一方面,有时*主题设置标记云以显示具有相同字体大小的所有标记(设置*相同值的“最小”和“最大”参数)。*为了始终为所有用户提供相同的内容,“aria-label”被打印出来:*-标签大小不同时*-显示标记计数时(例如,当用户选中*标记云小部件),无论标记字体大小如何*/if($args['show_count']||0!==$font_spread){$aria_label=真;}//组装将用于生成标记云标记的数据。$tags_data=数组();foreach($tags作为$key=>$tag){$tag_id=设置($tag->id)$tag->id:$key;$count=$counts[$key];$real_count=$real_counts[$key];if($translate_nooped_plural){$formatted_count=sprintf(translate_nooped_plural($translate_nooped_pulral,$real_count),number_format_i18n($real_count));}其他{$formatted_count=call_user_func($args['topic_count_text_callback'],$real_count,$tag,$args);}$tags_data[]=数组(“id”=>$tag_id,“url”=>(“#”!==$tag->链接)$标记->链接:“#”,“角色”=>(“#”!==$tag->链接)?“”:“role=“按钮”',“name”=>$tag->name,“formatted_count”=>$formatted_count,“slug”=>$tag->slug,'real_count'=>$real_cont,“class”=>“tag-cloud-link tag-link-”$标记id,“font_size”=>$args[“smallest”]+($count-$min_count)*$font_step,“aria_label”=>$aria_tabel?sprintf('aria-label=“%1$s(%2$s)”',esc_attr($tag->name),esc_attr($formatted_count)):'',“show_count”=>$args[“show_count”]?'<span class=“tag-link-count”>('.$real_count.')</span>':'',);}/***过滤用于生成标记云的数据。**@自4.3.0起**@param array[]$tags_data用于生成标记云的术语的术语数据数组。*/$tags_data=apply_filters('wp_generate_tag_cloud_data',$tags_data);$a=数组();//生成输出链接数组。foreach($tags_data作为$key=>$tag_data){$class=$tag_data['class']。'标记链接位置-'。($key+1);$a[]=冲刺('<a href=“%1$s”%2$s class=“%3$s”style=“font-size:%4$s;”%5$s>%6$s%7$s</a>',esc_url($tag_data['url']),$tag_data['role'],esc_attr($class),esc_attr(str_replace(',','.',$tag_data['font_size'])$args[“单元”]),$tag_data['aria_label'],esc_html($tag_data[“名称”]),$tag_data['show_count']);}交换机($args['format']){case“数组”:$return=&$a;断裂;案例“列表”:/**强制role=“list”,因为一些浏览器(sic:Safari 10)不向assistive公开*技术使用“list-style:none”设置列表样式时的默认角色。*注意:这是多余的,但无害。*/$return=“<ul class='wp-tag-cloud'role='list'>\n\t<li>”;$返回。=内爆(“</li>\n\t<li>”,$a);$返回。=“</li>\n</ul>\n”;断裂;违约:$return=内爆($args['separator'],$a);断裂;}if($args['filter']){/***过滤标记云的生成输出。**仅当传递了真值时才计算筛选器*到wp_generate_tag_cloud()中的$filter参数。**@自2.3.0起**@参见wp_generate_tag_cloud()**@param string[]| string$return包含生成的HTML标记云输出的字符串*或标记链接数组,如果“format”参数*等于“数组”。*@param WP_Term[]$tags标记云中使用的术语数组。*@param array$args wp_generate_tag_cloud()参数的数组。*/return apply_filters('wp_generate_tag_cloud',$return,$tags,$args);}其他{return$return;}}

挂钩

应用筛选器('标记云排序',WP_术语[] $个标签,阵列 $个参数 )

过滤标记云中项目的排序方式。

应用筛选器('wp_generate_tag_cloud',string[]|string $返回,WP_术语[] $个标签,阵列 $个参数 )

过滤标记云的生成输出。

应用筛选器(“wp_generate_tag_cloud_data”,数组[] $tags_data(标记_数据) )

过滤用于生成标记云的数据。

变更日志

版本描述
4.8.0添加了show_count(显示_计数)论点。
2.3.0介绍。

用户贡献的笔记

你必须登录在能够发表注释或反馈之前。