让Pinghsu主题的随机文章缩略图不出现重复图片

我比较懒,不想去设置文章的缩略图,而Pinghsu主题可以显示随机缩略图,挺好的。但是会出现同一页随机出同一张图片的情况,这样就比较难看了,所以我稍微魔改了一下主题

在主题的index.php中加入下面一段,要加在靠前的位置,放在生成主页的代码前面

<?php
function randThumb($n1, $n2)
{
    $a = range($n1, $n2);
    shuffle($a);
    foreach ($a as $k => $v) {
        yield $v;
    }
}
$rand_thumb = randThumb(0,7);
?>

然后在之前主题显示随机图片的地方,大概是这里

<?php $this->options->themeUrl('images/thumbs/'.mt_rand(0,9).'.jpg'); ?>

改成

<?php $this->options->themeUrl('images/thumbs/'.$rand_thumb->current().'.jpg');$rand_thumb->next(); ?>

一共有两处,分别对应两种首页风格
注意:首页显示的文章数不要超过随机的图片数,不然后面就显示不了图片了

原理:生成一个有序数组然后打乱,之后利用生成器,从数组第一个开始,每次执行生成器返回当前值,并使指针向后移动一位,直至遍历完整个数组

Comments

添加新评论

已有 2 条评论

不然把底下又拍云换成字?

我都是写一篇文章就去ins上爬一张好看的图做缩略图,后来懒得设置图了