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中通过ADO调用Access数据库的方法测试不通过
Dec 31 PHP
收藏的一个php小偷的核心程序
Apr 09 PHP
php MySQL与分页效率
Jun 04 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
May 06 PHP
php购物车实现代码
Oct 10 PHP
php使用异或实现的加密解密实例
Sep 04 PHP
PHP检测移动设备类mobile detection使用实例
Apr 14 PHP
php中数字0和空值的区别分析
Jun 05 PHP
php数据访问之增删改查操作
May 09 PHP
ThinkPHP实现更新数据实例详解(demo)
Jun 29 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
PHP基本语法
Mar 31 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使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
php适配器模式简单应用示例
2019/10/23 PHP
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
2011/11/02 Javascript
javascript中如何处理引号编码&amp;#034;
2013/08/15 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
javascript中错误使用var造成undefined
2016/03/31 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
js变量声明var使用与不使用的区别详解
2019/01/21 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
Vue实现省市区三级联动
2020/12/27 Vue.js
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
python入门教程 python入门神图一张
2018/03/05 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
python3.7 sys模块的具体使用
2019/07/22 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Django框架表单操作实例分析
2019/11/04 Python
Python sys模块常用方法解析
2020/02/20 Python
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
英语专业求职信
2014/07/08 职场文书
Redis+AOP+自定义注解实现限流
2022/06/28 Redis