思章老师
思章老师

大前端WordPress D8主题优化之:缩略图裁切

大前端WordPress D8主题优化之:缩略图裁切

大前端浩子同学的新WordPress主题D8太给力了,目前可以说全网D8,很多博主朋友们都在使用D8欢乐博客中,当然我也不例外,好的主题,当然要享受一下。

但大前端的主题还有些地方可以进行优化的,比如全站的缩略图,浩子同学就没有进行优化,全部是整张图片显示,没有进行任何裁切处理,对于流量大的博客来说,这无所谓,但对于流量小的可怜的博客,日志中又有很多图片的博主来说,就完全不同了,本文主要介绍一下简单几招,全站瘦身,让你的博客不占流量,闪电加载!

D8缩略图是通过deel_thumbnail函数进行提取的,这个函数在主题目录下的functions.php中,大家可以自行搜索查找,原来代码如下:

if ( ! function_exists( 'deel_thumbnail' ) ) :
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 src="'.$strResult[1][0].'" alt="'.trim(strip_tags( $post->post_title )).'" />';
}else {
echo '<img src="'.get_bloginfo('template_url').'/img/thumbnail.png" alt="'.trim(strip_tags( $post->post_title )).'" />';
}
}
}
endif;

这段代码只提取了文章的第一张图片,但不管图片多大,都没有对图片进行裁切压缩,下面是我优化后的函数代码,替换上面代码:

/*缩略图*/
if ( ! function_exists( 'deel_thumbnail' ) ) :
function deel_thumbnail() {
global $post;
if ( has_post_thumbnail() ) {
$domsxe = simplexml_load_string(get_the_post_thumbnail());
$thumbnailsrc = $domsxe->attributes()->src;
echo '<img width="220" height="150" 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_bloginfo('template_url').'/img/thumbnail.png" alt="'.trim(strip_tags( $post->post_title )).'" />';
}
}
}
endif;

上面代码将配合使用大名鼎鼎的 timthumb.php 文件对缩略图自动裁切成指定尺寸,并保存在缓存目录,我使用的是220×150,你可以根据自己需要改动尺寸。

下载 timthumb.php 文件到你的D8主题目录,新建目录cache,并设置可写权限777,新的缩略图函数就自动对图片进行裁切到220×150尺寸,并保存到你的缓存目录cache,这样就可以全站节约大量流量,博客的访问速度自然就会提升N倍。

当然,大家可能被标题诱惑到了,我并不是提供大前端D8主题的下载,而是提供一个优化方案,估计在使用D8流量又不大的朋友,一定觉得本文有用,打算使用D8的朋友,请直接围观大前端博客购买正版。

可能是我提供的代码应该可以正常使用,但不排除被WP自动转义的可能,应大家需要,我把代码弄到记事本里,直接下载即可。
deel_thumbnail优化版缩略图代码(右键另存)

发表评论

textsms
account_circle
email

  • 很是给力哈哈!!

    8年前 回复
  • 媚眼儿风流

    刚才实验了一下得上传的图片有效果,不过盗链的图片就不行了,图片本地其实也不错不然人家一改图片就全部看不到了

    8年前 回复
  • 没发现cache文件夹有略缩图啊,跟没改一样。看不出效果?……

    9年前 回复
  • 看來是我的問題了,現在提示unexpected $end in ****/functions.php line 719關鍵是我的719行是?>,無語ing,看來得去看看php的語法了

    9年前 回复
  • 博主,我只要把你的代碼替換過去就提示錯誤
    提示錯誤的那一行代碼是preg_match_all('//sim', $content, $strResult, PREG_PATTERN_ORDER);

    9年前 回复
  • 为什么,我按照你说的做了以后,网页都打不开?改了代码,上传了 timthumb.php

    9年前 回复
  • 这个好…评价的社交媒体登入是什么插件啊…

    9年前 回复
  • 每篇文章从来都是我亲手制作的略缩图(特色图像),,,

    9年前 回复
  • 以为提供下载呢

    9年前 回复
  • 没有人

    博主好,假如在改代码之前的图片会自动生成缩略图吗?

    9年前 回复
  • Louis Han

    好的主题毕竟还是比较少啊

    9年前 回复
  • 李哥你这个优化做得也不是很好嘛。每张图片都这么大,哪里压缩了,你看看我的博客,每张图片都比你小得多

    9年前 回复
    • @郑杰: 小鸭子~我冲着优化进来~~发现还不如你的D8~~~

      9年前 回复
      • 落花生博主

        @Sam: 图片已经是压缩之后的啦

        9年前 回复
      • 落花生博主

        @Sam: 真正优化好的,请围观这里:wpunion.org,我博客写了教程之后,还没有时间去优化呢

        9年前 回复
        • @落花生: 呃~~去看了你优化完的那个站~~还是有效果的,pagespeed 和yslow评分都到了B,但是。。我还是给你一个建议。。去扒这层主博客的代码。。。一样的主题,他都已经两个A了哟。。。

          9年前 回复
          • 落花生博主

            @Sam: 哈哈,不扒不扒啦。。。

            9年前
          • @Sam: 你丫的山姆叔叔,别逼我扒光你。。。我国庆节要终极优化。我把我的文章略缩图都按照右侧Gravatar头像的lazyload处理 :mrgreen:

            9年前
          • 落花生博主

            @郑杰: 哈哈,扒吧扒吧,快来扒吧。。。等我过去再给你扒回来!! 😈

            9年前
  • ssd

    李哥你好,我也买了这个主题,但不过烦恼了,传上去预览没反应,直接启用全站都打不开,两个VPS都是一样,我PHP是5.2.17p1,用的是lnmp,函数已经全部删除掉php.ini”里面的函数中的disable_funcions = ,还是这样,wordpress是3.61,权限777,没办法了,向您求助

    9年前 回复
    • 落花生博主

      @ssd: 买了主题之后,使用过程中遇到问题,直接去大前端反馈,主题确实还有一些问题需要完善,请移步:daqianduan.com

      9年前 回复
  • 估计用不了多久,D8主题就泛滥了。。

    9年前 回复
  • 一堵墙

    大前端的主题一直比较经典。

    9年前 回复
  • 这主题确实看着很带感啊~~

    9年前 回复
    • 落花生博主

      @自由人: 主题很带感!你的zAlive也相当带感,我都专门发文章介绍了!膜拜,我的老朋友!进步很大,再接再厉!

      9年前 回复
  • 这个文件不小啊。。用作缩略图是否有点复杂了????

    9年前 回复

思章老师

大前端WordPress D8主题优化之:缩略图裁切
大前端浩子同学的新WordPress主题D8太给力了,目前可以说全网D8,很多博主朋友们都在使用D8欢乐博客中,当然我也不例外,好的主题,当然要享受一下。 但大前端的主题还有些地方可以进…
扫描二维码继续阅读
2013-09-10