让WordPress主题随机显示缩略图

2010年3月8日23:31:03 WordPress进阶 13 24,234

之前本人的新作Hot News主题使用timthumb.php函数自动调整缩略图大小,并生成缓存文件,国外大部分CMS主题也都是采用此方法生成缩略图。但这一方法无法截取外链图片,这一致命弱点最终让我放弃使用timthumb.php函数。目前我使用的新版HotNews pro2.0采用比较普遍的显示缩略图的方法,添加自定义域,并通过CSS控制缩略图大小。有时文章中没有图片,也懒得特意作缩略图,虽然有默认占位图代替缩略图的位置,但文章发多了看着非常单调,也失去了缩略图吸引读者眼球的作用,于是忽随机显示默认缩略图的想法就出来了,下面请看具体的实现方法。
一般 WordPress杂志型主题,都具备缩略图功能,采用的通用缩略图函数代码如下:

<?php if ( get_post_meta($post->ID, 'thumbnail', true) ) : ?>
<?php $image = get_post_meta($post->ID, 'thumbnail', true); ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><img src="<?php echo $image; ?>" alt="<?php the_title(); ?>"/></a>
<?php else: ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><img src="<?php bloginfo('template_directory'); ?>/images/img.jpg" alt="让WordPress主题随机显示缩略图" alt="<?php the_title(); ?>" /></a>
<?php endif; ?>

只需在默认占位图链接位置添加一句"rand()"函数就可随机调用特定目录下的多个图片,下面是修改后的:

<?php if ( get_post_meta($post->ID, 'thumbnail', true) ) : ?>
<?php $image = get_post_meta($post->ID, 'thumbnail', true); ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><img src="<?php echo $image; ?>" alt="<?php the_title(); ?>"/></a>
<?php else: ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><img src="<?php bloginfo('template_directory'); ?>/images/random/img<?php echo rand(1,5)?>.jpg" alt="让WordPress主题随机显示缩略图" alt="<?php the_title(); ?>" /></a>
<?php endif; ?>

修改后的代码说明:

/images/random/img<?php echo rand(1,5)?>.jpg

前面的img是图片的名称,我们可以新建几个名称为:img1.jpg, img2.jpg,img3.jpg,img4.jpg,img5.jpg的图片,放到/images/random/(图片所在的位置,可根据实际修改。)目录中,也可以是其它格式的图片。将上面的代码添加到模板适当位置,刷新一下页面看看效果如何。
大家可以刷新一下我博客的首页zmingcx.com,看看随机缩略图的实际效果,还是很不错,不过大家要手下留情,刷几下也就算了,呵呵...

评论已关闭!

目前评论:13   其中:访客  13   博主  0

    • CT CT 1

      我也来刷一下,哈哈

      • Spider Spider 1

        我也去刷了一下,很好的代码。可以再改进一下,让缩略图不重复出现。

        • Windows8 Windows8 1

          这个叫制定缩图吧,不是随机缩图,因为制定了缩图图片。

          如果能制定随机缩图某栏目或者uploads的图片就安逸了。

            • 知更鸟 知更鸟 5

              @Windows8 准确地说应该是随机占位图

            • 八卦斯基 八卦斯基 3

              已经测试,很好很强大。准备下午用上去。
              ——–

              • 朱芳文 朱芳文 1

                刷了几下,出现了问题,自己去看吧

                • 八卦斯基 八卦斯基 3

                  已经弄好。很喜欢。

                  • cuiqingyao cuiqingyao 5

                    文章写得太专业了,赞一个。

                    • yisvin yisvin 1

                      来看一下。。。

                      • 雨凡 雨凡 1

                        非常美观,不过要是能和文章自动匹配就好了。

                        • abc abc 0

                          想请教一下:用more来截取用于首页内容摘要式显示,并提取最一张图为缩略图,那么怎样才能屏蔽在首页显示的其它图片呢?因为已有缩略图了,再显示其它图片就变得很乱,我只需要原样式的文字.希望高人解答.

                          • CorelDraw插件 CorelDraw插件 1

                            现在很多主题都是这样缩略图

                            • 青春无华 青春无华 0

                              很专业,受教了。