WordPress中实现彩色标签云

WordPress默认的标签云色彩比较单调,视觉效果不佳。如果我们给它加不同的颜色,无疑会更加引入注目。实现起来其实非常简单,只需要在functions.php中添加以下代码,标签云就变成彩色标签。

彩色标签云实现

function colorCloud($text) {
    $text = preg_replace_callback('|<a (.+?)>|i', 'colorCloudCallback', $text);
    return $text;
}
function colorCloudCallback($matches) {
    $text = $matches[1];
    $color = dechex(rand(0,16777215));
    $pattern = '/style=(\'|\")(.*)(\'|\")/i';
    $text = preg_replace($pattern, "style=\"color:#{$color};$2;\"", $text);
    return "<a $text>";
}
add_filter('wp_tag_cloud', 'colorCloud', 1);

一般在主题目录下都会有functions.php文件,如果没有可以在主题目录下新建一个。

标签云参数修改

我们还可以通过修改标签云的参数,让标签云更加完美;一种是直接修改网站根目录下wp-includes/category-template.php文件;另一种是在主题目录的functions.php中修改标签云参数,这两种方法效果是一样的,推荐使用第二种方式。

//修改标签云参数
function theme_tag_cloud_args( $args ){
	$newargs = array(
		'smallest'    => 8,  //最小字号
		'largest'     => 22, //最大字号
		'unit'        => 'pt',   //字号单位,可以是pt、px、em或%
		'number'      => 45,     //显示个数
		'format'      => 'flat',//列表格式,可以是flat、list或array
		'separator'   => "\n",   //分隔每一项的分隔符
		'orderby'     => 'name',//排序字段,可以是name或count
		'order'       => 'ASC', //升序或降序,ASC或DESC
		'exclude'     => null,   //结果中排除某些标签
		'include'     => null,  //结果中只包含这些标签
		'link'        => 'view', //taxonomy链接,view或edit
		'taxonomy'    => 'post_tag', //调用哪些分类法作为标签云
	);
	$return = array_merge( $args, $newargs);
	return $return;
}
add_filter( 'widget_tag_cloud_args', 'theme_tag_cloud_args' );

相关