wordpress自定义标签云与随机获取标签的方法详解
wp_tag_cloud()函数的作用是用来标签云的,可以根据每个标签所关联的文章次数来定义字体大小、标签排序等属性。从2.8版本开始,添加了分类法(taxonomy)参数,这就意味着,除了标签(tags)以外,还可以将分类(Categories)或其他自定义分类法(CustomTaxonomies)作为“云”显示。
用法
默认用法
8,'largest'=>22,'unit'=>'pt','number'=>45,'format'=>'flat','separator'=>"\n",'orderby'=>'name','order'=>'ASC','exclude'=>null,'include'=>null,'topic_count_text_callback'=>default_topic_count_text,'link'=>'view','taxonomy'=>'post_tag','echo'=>true,'child_of'=>null(seeNote!));?>
注:child_of不是一个直接的wp_tag_cloud数组的键(Key),但由于这个函数使用wp_parse_args()和get_terms(),你可以通过get_terms()使用所有的数组键。
默认情况下的输出内容:
- smallest——最小的标签(使用次数最少)显示大小为8
- largest——最大的标签(使用次数最多)显示大小为22
- unit——最大值最小值的单位为'pt'
- number——至多显示45个标签
- format——以平面形式显示所有标签(标签之间用空格隔开)
- separator——显示标签之间的空格
- orderby——按名称为标签排序
- order——以升序排列
- exclude——不排除任何标签
- include——包括所有标签
- topic_count_text_callback——使用函数default_topic_count_text
- link——可视
- taxonomy——用文章的标签作为云基础
- echo——输出结果
但由于该方法把样式集合到了里面,使用起来不怎么友好,如果想自定义读取标签并修改展示样式该怎么做呢,那也是非常简单的,看代码实例,这里根据get_tags来获取:
$html=''; foreach(get_tags(array('number'=>50,'orderby'=>'count','order'=>'DESC','hide_empty'=>false))as$tag){ $color=dechex(rand(0,16777215)); $tag_link=get_tag_link($tag->term_id); $html.=" "; } $html.=''; echo$html; name}Tag'class='{$tag->slug}'style='color:#{$color}'>"; $html.="{$tag->name}({$tag->count})
如果要求随机获取标签在首页显示,那可以使用以下代码,但这种做法貌似不利于seo,可得慎重使用
//获取随机标签 functionget_rand_tags() { global$post,$wpdb; $sql="SELECT*FROM{$wpdb->prefix}termswtINNERJOIN{$wpdb->prefix}term_taxonomywttonwt.term_id=wtt.term_idwherewtt.taxonomy='post_tag'ORDERBYRAND()LIMIT20"; $related_posts=$wpdb->get_results($sql); $html=''; foreach($related_postsas$tag) { $color=dechex(rand(0,16777215)); $tag_link=get_tag_link($tag->term_id); $html.=" "; } $html.=''; echo$html; } name}Tag'class='{$tag->slug}'style='color:#{$color}'>"; $html.="{$tag->name}({$tag->count})
获取随机标签用get_tags函数怎么变化参数都是没法获取到的(反正我是获取不到,欢迎大神留言指导),结果最后就用的sql连接表查询就搞出来了。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。