wordpress自定义标签云与随机获取标签的方法详解


Posted in PHP onMarch 22, 2019

wp_tag_cloud() 函数的作用是用来标签云的,可以根据每个标签所关联的文章次数来定义字体大小、标签排序等属性。从 2.8 版本开始,添加了 分类法(taxonomy)参数,这就意味着,除了 标签(tags)以外,还可以将 分类(Categories) 或其他 自定义分类法(Custom Taxonomies)作为“云”显示。

用法

<?php wp_tag_cloud( $args ); ?>

默认用法

<?php $args = array( 'smallest' => 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(see Note!) ); ?>

注: 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 = '<ul class="post_tags">';
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 .= "<li><a href='{$tag_link}' title='{$tag->name} Tag' class='{$tag->slug}' style='color:#{$color}'>";
 $html .= "{$tag->name} ({$tag->count})</a></li>";
}
$html .= '</ul>';
echo $html;

如果要求随机获取标签在首页显示,那可以使用以下代码,但这种做法貌似不利于seo,可得慎重使用

//获取随机标签
function get_rand_tags()
{
 global $post, $wpdb;
 $sql = "SELECT * FROM {$wpdb->prefix}terms wt INNER JOIN {$wpdb->prefix}term_taxonomy wtt on wt.term_id=wtt.term_id where wtt.taxonomy='post_tag' ORDER BY RAND() LIMIT 20";
 $related_posts = $wpdb->get_results($sql);
 $html = '<ul class="post_tags">';
 foreach($related_posts as $tag)
 {
 $color = dechex(rand(0,16777215));
 $tag_link = get_tag_link($tag->term_id);
 $html .= "<li><a href='{$tag_link}' target='_blank' title='{$tag->name} Tag' class='{$tag->slug}' style='color:#{$color}'>";
 $html .= "{$tag->name} ({$tag->count})</a></li>";
 }
 $html .= '</ul>';
 echo $html;
}

获取随机标签用get_tags函数怎么变化参数都是没法获取到的(反正我是获取不到,欢迎大神留言指导),结果最后就用的sql连接表查询就搞出来了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
使PHP自定义函数返回多个值
Nov 26 PHP
不错的PHP学习之php4与php5之间会穿梭一点点感悟
May 03 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
Jul 03 PHP
php下拉选项的批量操作的实现代码
Oct 14 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
Jul 01 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
php最简单的删除目录与文件实现方法
Nov 28 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
May 08 PHP
PHP中检查isset()和!empty()函数的必要性
Feb 13 PHP
PHP whois查询类定义与用法示例
Apr 03 PHP
Laravel 在views中加载公共页面的实现代码
Oct 22 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 PHP
PHP中$GLOBALS与global的区别详解
Mar 21 #PHP
PHP压缩图片功能的介绍
Mar 21 #PHP
PHP应用跨时区功能的实现方法
Mar 21 #PHP
PHP时间函数使用详解
Mar 21 #PHP
PHP抽象类与接口的区别详解
Mar 21 #PHP
PHP CURL使用详解
Mar 21 #PHP
使用ucenter实现多站点同步登录的讲解
Mar 21 #PHP
You might like
PHP验证码函数代码(简单实用)
2013/09/29 PHP
CodeIgniter CLI模式简介
2014/06/17 PHP
php时间函数用法分析
2016/05/28 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
Javascript 中的类和闭包
2010/01/08 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
JavaScript中offsetWidth的bug及解决方法
2017/05/17 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
vue项目中使用百度地图的方法
2018/06/08 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
详解Vite的新体验
2021/02/22 Javascript
Python自动化测试ConfigParser模块读写配置文件
2016/08/15 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
PyCharm设置每行最大长度限制的方法
2019/01/16 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
Python datetime和unix时间戳之间相互转换的讲解
2019/04/01 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
2015年保洁工作总结范文
2015/04/28 职场文书
家长会主持词开场白
2015/05/29 职场文书
运动会观后感
2015/06/09 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
2019毕业论文致谢词
2019/06/24 职场文书
DBCA命令行搭建Oracle ADG的流程
2021/06/11 Oracle
React四级菜单的实现
2022/04/08 Javascript
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python