首页 >> 网站技术 >> 博客搬到SAE后,缩略图无法显示问题解决

博客搬到SAE后,缩略图无法显示问题解决

Catagory:网站技术, Date:2014年12月16日,Author: 工业品营销-贾定强

之前曾经把博客搬到过新浪sae上,因为当时域名没有备案,只能解析到海外节点,然后再通过伪域名绑定的方法,将请求返回到sae。通过响应速度的监测,发现还不如放在国外的服务器快,所以就又搬回去了。转眼间,博客已经开通五年了。为了庆贺一下,决定麻烦一次,把案备了,从此就可以搬回国内了,所以,博客又一次跑到了新浪sae上。

为什么选择sae呢?我对比了阿里云和新浪sae,发现还是新浪sae的速度更快一些,价格也更便宜一些。但sae唯一不好的地方就是对计算机能力有一定要求,不太适合普通入门者。

有了几次的博客搬迁经验,这次的搬迁非常顺利。直接在sae上安装wordpress,然后把sql备份导入到sae数据库,通过SVN把plugins、themes、uploads三个文件夹同步到服务器上。登陆后台把设置简单修改一下,就可以访问了。

唯一一点比较麻烦的是主题里的缩略图无法显示了(详见http://www.jiadingqiang.com/2441.html),应该是sae版的wordpress修改了查找缩略图的内置函数。因为sae版的wordpress,默认的上传图片地址是在storage里面,而不是传统的upload文件夹里。修改内置函数肯定是比较麻烦的,我的解决办法是,搬家之前的文章单独处理一下。所以,修改了主题里的thumb.php和function.php。

在function.php里添加了一个提取文章第一张图片的函数,具体如下:

function catch_first_image(){
global $post,$posts;
$first_img=”;
ob_start();
ob_end_clean();
$output=preg_match_all(‘/<img.+src=[\'”]([^\'”]+)[\'”].*>/i’,$post->post_content,$matches);
$first_img=$matches[1][0];
if(empty($first_img)){//自定义第一张图片
$first_img = get_bloginfo(‘template_url’) . ‘/img/jingxuan.jpg’;
}
return $first_img;
}

然后在thumb.php修改为:

<?php
if($post->ID>2870){  //2871是搬到sae的第一篇文章
$args = array(
‘post_parent’ => $post->ID,
‘post_type’ => ‘attachment’,
‘post_mime_type’ => ‘image’
);

$images = &get_children( ‘post_type=attachment&post_mime_type=image&post_parent=’ . $post->ID );
$imageUrl = ”;

if ($images) {
$image = array_pop($images);
$imageSrc = wp_get_attachment_image_src($image->ID);
$imageUrl = $imageSrc[0];
}else{
$imageUrl = get_bloginfo(‘template_url’) . ‘/img/jingxuan.jpg’;
}
}else{ // sae之前的文章缩略图特殊处理
$imageUrl = catch_first_image();
}
?>
<a href=”<?php the_permalink() ?>”><img src=”<?php echo $imageUrl; ?>” alt=”<?php the_title(); ?>” width=”148″ height=”92″ /></a>

博客总算是回来了,以后的好好维护一下,争取更大家分享更有价值的内容。

来源:工业品营销,原文地址:http://www.jiadingqiang.com/2881.html,欢迎分享本文,转载请保留出处!

你也来说几句:

名字*必填
邮箱*必填,不会被公开
网站
QQ群交流
最近文章
文章归档
  • 2017 (3)
  • 2016 (30)
  • 2015 (63)
  • 2014 (21)
  • 2013 (38)
  • 2012 (25)
  • 2011 (67)
  • 2010 (268)
  • 2009 (19)