wordpress 随机获取文章中的图片

2015-12-24 00:14 阅读 14 次 评论关闭

以前的wordpress 的图片模板,用的 timthumb.php 来实现自动获取文章中的图片,有漏洞。

于是网上找了其他方式的代码。经过修改,基本可以实现 所有的需求了吧。

1.只提取文章中的一个图片地址。

2.而且可以自己通过图片的 width 和 height 实现浓缩图的效果。

3.当文章没有图片的时候,随机显示图片(避免重复)

<?php
$soContent = $post->post_content;
$ext = 'gif|jpg|jpeg|bmp|png';
preg_match_all ('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $soContent, $thePics );
$allPics = count($thePics[0]);
switch ( $allPics > 0 ) {
case $allPics = 1:
echo $thePics[1][0]; // 显示文章中的第一张图片
break; // 当图片数量有1个时,不再执行
default:
$dir=get_bloginfo('template_url')."/gif.txt";   //需要建立一个随机图片的gif.txt文件
$arrayall=file( $dir );//读出txt内容到数组
$arrays=count($arrayall);
if ($arrays==1){//because rand(0,0) is wrong
$selectrand=0;
}else{
srand((double)microtime()*1000000);//设定随机数种子
$selectrand=rand(0,$arrays-1);
}
$exstr=explode(chr(9),$arrayall[$selectrand]);//从全部中随机取出一个并分割
echo $exstr[0];
};
?>

使用方法:

<?php query_posts('showposts=5&offset=1'); ?>   设置WordPress 分类显示的条数

<?php while (have_posts()) : the_post(); ?>

  <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><img src="<?php include (TEMPLATEPATH . '/hsmw.php'); ?> "width="110" height="90" alt="<?php the_title(); ?>" /></a>     提取文章中的一个图片,如果没有随机图片

<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>    标题显示

<?php echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 100,"..."); ?>  显示文章内容的前100个字符
<?php endwhile; ?>

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:wordpress 随机获取文章中的图片 | 猎微网
分类:wordpress二次开发 标签:

评论已关闭!