codetc - 网站开发技术 首页 后端 PHP 查看内容

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

2015-10-15 19:06| 发布者: CODETC| 查看: 4362| 评论: 0

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


但由于该方法把样式集合到了里面,使用起来不怎么友好,如果想自定义读取标签并修改展示样式该怎么做呢,那也是非常简单的,看代码实例,这里根据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连接表查询就搞出来了。

文章来源 CODETC,欢迎分享,转载请注明地址: http://www.codetc.com/article-255-1.html

最新评论

 作为游客发表评论,请输入您的昵称

返回顶部