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

本文介绍了如何在WordPress中自定义标签云的显示样式,并提供了使用get_tags函数获取标签的代码示例。同时,展示了如何通过SQL查询获取随机标签,但警告这种方法可能对SEO不利。文章强调了自定义标签云样式的重要性,并提供了相关代码帮助读者实现这一目标。
摘要由CSDN通过智能技术生成

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

用法

默认用法

<?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 = '

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 .= "{$tag->name} ({$tag->count})

";

}

$html .= '

';

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 = '

foreach($related_posts as $tag)

{

$color = dechex(rand(0,16777215));

$tag_link = get_tag_link($tag->term_id);

$html .= "

";

$html .= "{$tag->name} ({$tag->count})

";

}

$html .= '

';

echo $html;

}

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

总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值