实现emlog侧边栏标签组件的标签随机显示

emlog侧边栏标签组件调用的标签根据标签的tid升序排列显示,即是先创建的标签排在前面,这种情况对于侧边栏调用了所有标签的网站不会有什么影响,但是如果设置了标签显示数量的话,那么侧边栏调用的标签就会总是先创建的几个,显示不够友好,这时可以考虑把标签随机显示。

操作步骤:

1、编辑当前使用的emlog模板的module.php文件,找到代码:

1
$tag_cache = $CACHE->readCache('tags');

2、在该代码下面添加:

1
2
shuffle($tag_cache);
$tag_cache = array_slice($tag_cache,0,10);

其中第二行是控制标签数量,如果显示所有标签,则删除第二行代码。

附:完整代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php 
function widget_tag($title){
	global $CACHE;
	$tag_cache = $CACHE->readCache('tags');
	shuffle($tag_cache);
	$tag_cache = array_slice($tag_cache,0,10); //10是要调用的标签数量    
?>
	<section class="widget divTags">
		<h3><?php echo $title; ?></h3>
	<ul>
	<?php foreach($tag_cache as $value): ?>
		<li><a href="<?php echo Url::tag($value['tagurl']); ?>" title="<?php echo $value['tagname']; ?>"><?php echo $value['tagname']; ?></a></li>
	<?php endforeach; ?>
	</ul>
	</section>
<?php 
}
?>
知识扩展:

shuffle(array)函数的作用是把数组中的元素按随机顺序重新排序,上述代码中的$tag_cache便是网站标签组成的一个数组。

发表留言