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语法(2)
Oct 09 PHP
PHP常用函数小技巧
Sep 11 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
Apr 10 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
Jul 15 PHP
试用php中oci8扩展
Jun 18 PHP
php基于双向循环队列实现历史记录的前进后退等功能
Aug 08 PHP
PHP实现带重试功能的curl连接示例
Jul 28 PHP
PHP获取用户客户端真实IP的解决方案
Oct 10 PHP
PHP中单例模式与工厂模式详解
Feb 17 PHP
php+mysql+jquery实现日历签到功能
Feb 27 PHP
详解php curl带有csrf-token验证模拟提交方法
Apr 18 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
May 02 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 大数据量及海量数据处理算法总结
2011/05/07 PHP
thinkphp实现面包屑导航(当前位置)例子分享
2014/05/10 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
php安装dblib扩展,连接mssql的具体步骤
2017/03/02 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
js基于canvas实现时钟组件
2021/02/07 Javascript
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
详解Swift中属性的声明与作用
2016/06/30 Python
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
Python 基础教程之闭包的使用方法
2017/09/29 Python
Python enumerate索引迭代代码解析
2018/01/19 Python
pycharm配置当鼠标悬停时快速提示方法参数
2019/07/31 Python
python实现超市商品销售管理系统
2019/10/25 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
.net开发工程师面试题
2014/02/25 面试题
甜美蛋糕店创业计划书
2014/01/30 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
Vue项目打包、合并及压缩优化网页响应速度
2021/07/07 Vue.js