最新消息:数据恢复成功,博主又回来啦,和你们同在!

WordPress 无插件添加随机缩略图

wordpress ZmmFly 2276浏览 5评论

不想每篇博文都制作(Copy)缩略图。。。于是就。。。

木有抄其它主题的一点代码,采集君就放过我吧。。。

Step1

将下面的代码添加到functions.php中

function get_rand_thum_img(){
    $randimgdfile=array();

    //缓存过期时间(秒)
    $randimgcact = 2592000 ;

    //Path
    $randimgdpath = get_stylesheet_directory().'/randimg/';
    $randimgupath = get_stylesheet_directory_uri().'/randimg/';
    //Path-END

    //使用WP数据库缓存文件列表,减少HDD IO 读取
    $randimgdtmp = get_option('shenqhy_randimg');
    if (!$randimgdtmp) {
        $randimgdfile = glob($randimgdpath.'*.png');
        update_option('shenqhy_randimg',serialize(array('time'=>time(),'data'=>$randimgdfile)));
    }else{
        $randimgdtmp = unserialize($randimgdtmp);
        $randimgexpt = (time() - $randimgdtmp['time']);
        if ($randimgexpt>$randimgcact || $randimgexpt<0) {
            $randimgdfile = glob($randimgdpath.'*.png');
            update_option('shenqhy_randimg',serialize(array('time'=>time(),'data'=>$randimgdfile)));
        }else{
            $randimgdfile = $randimgdtmp['data'];
        }
    }

    //计数文件数量,为随机发生器做准备
    $randimgfcoun = count($randimgdfile);

    //随机发生
    $randimgrfile = rand(0,($randimgfcoun-1));

    //生成图片链接
    $randimguout = $randimgupath.str_replace($randimgdpath, '', $randimgdfile[$randimgrfile]);

    //销毁变量
    unset($randimgdfile,$randimgdpath,$randimgupath,$randimgfcoun,$randimgrfile);

    //返回图片链接
    return $randimguout;
}

Step2

下载 randimg.zip(1.7M) 解压,上传至主题目录中

修改主题代码为:

以博主目前使用的主题为例:

function deel_thumbnail() {
    global $post;
    if ( has_post_thumbnail() ) {
        $domsxe = simplexml_load_string(get_the_post_thumbnail());
        $thumbnailsrc = $domsxe->attributes()->src;
        echo '<img src="'.$thumbnailsrc.'" alt="'.trim(strip_tags( $post->post_title )).'" />';
    } else {
        $content = $post->post_content;
        preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER);
        $n = count($strResult[1]);
        if($n > 0){
            echo '<img width="220" height="150" src="'.get_bloginfo("template_url").'/timthumb.php?src='.$strResult[1][0].'&w=220&h=150&zc=1" alt="'.trim(strip_tags( $post->post_title )).'" />';
        }else {
            echo '<img width="220" height="150" src="'.get_rand_thum_img().'" alt="'.trim(strip_tags( $post->post_title )).'" />';
        }
    }
}

至于其它主题,就请各位友友自行修改了。。。

其实呢,大家还可以自己添加图片到存放缩略图的文件夹中,但最好别用除大小写字母和数字以及 -_ 之外的字符。
不过嘛,用也行,最好是得把上面的 $randimguout = $randimgupath.urlencode(str_replace($randimgdpath, '', $randimgdfile[$randimgrfile])); 改成 $randimguout = $randimgupath.urlencode(str_replace($randimgdpath, '', $randimgdfile[$randimgrfile]));

转载请注明:SH自留地 » WordPress 无插件添加随机缩略图

打赏 赞(0)
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

发表我的评论
取消评论

Protected by WP Anti Spam

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (5)

  1. 这个现在很多主题都带的哦
    Small Desert评论于6年前 (2014-01-20)回复
    • 嗯,但自己用自己做出来的和用别人的感觉不一样哦~~!^_^
      惜颜评论于6年前 (2014-01-20)回复
  2. 这个很多主题都自带的--
    Small Desert评论于6年前 (2014-01-20)回复
    • 。。。评论了两次。。。我这里的第一次评论得审核的。。。
      惜颜评论于6年前 (2014-01-20)回复
    • 不是哦,提交了一次,但是页面一直没有反映...你应该检查下--
      Small Desert评论于6年前 (2014-01-20)回复