虽然标签云(Tag Cloud)是WordPress2.3版以后的内置功能,在后台小工具中直接拖动添加到侧边栏即可。不过标签云字体默认情况尺寸不同,但色彩一致,看起来相当杂乱,不美观,虽然有 Simple Tags 等插件可以为标签上色,但是直接修改来实现会更好。我目前的博客主题是poetry,是一款由国人改自iNove的主题,改法和iNove主题类似,效果可以参考本站。
在主题文件夹中functions.php 文件中加入以下代码:
代码中”$color=dechex(rand(0,16777215));”:作用是定义标签随机颜色的十进制数值范围,0 等于 #000000,16777215 等于 #ffffff,就是把平常使用的十六进制转换为相应的十进制就可以了。
//Color Tag Cloud 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);
inove主题是加在以下代码上一行的:(位置随便但不能插到别的模块里去)
// custom comments function custom_comments($comment, $args, $depth) {
修改完成后,用后台标签云小工具调用或者使用下面这段代码在主题文件夹sidebar.php中调用即可:(inove主题已经在sidebar.php中自带了,所以这步不需要了)
<?php wp_tag_cloud('smallest=8&largest=24&number=50'); ?>
“smallest”:最小的字体尺寸(使用频率最少的标签)
“largest”:最大的字体尺寸(频率最多的)
“number”:则表示标签显示数量。
对于poetry主题,如果不用后台小工具调用,可以在:
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('south_sidebar') ) : ?>
之前添加如下代码来调用标签云:
<!-- Color Tag Cloud --> <div class="widget"> <h3>标签云</h3> <?php wp_tag_cloud('smallest=8&largest=16'); ?> </div>
对于WordPress后台小工具的标签云 字体大小、标签显示数量 等的修改,在wp-includes\category-template.php 文件中搜索wp_tag_cloud找到相关参数修改。
对于WordPress后台写文章界面的标签云 标签显示数量 等的修改,在wp-admin\admin-ajax.php 文件中搜索“tags = get_terms”找到相关参数修改。
之前我用的主题集成了这个效果 我去提取出来试用了一下 又去掉了 还是要和主题搭配才好
@角落
可以调节下色彩范围~
博客不错,特来支持。
我说为何标签总不显示,原来只能显示45个默认。