也想出現在這里?聯系我們

wordpress縮略圖尺寸重新裁剪 timthumb

  • 文章介紹
  • 升級版本
  • 評價&建議

問題緣由

注:該方法已失效,文章可以停止瀏覽!

眾所周知,小2的網站近期改版了,縮略圖也放大了,更加的展現主題的風采了;但是其實一直隱藏著一個問題沒解決,而這個問題,從第二次改版的時候就伴隨著了,就是縮略圖的尺寸還是用的網站上線初所用的縮略圖尺寸。

盡管后臺的設置-多媒體-縮略圖尺寸修改了,可這是新上傳的圖片才會生成新的尺寸的縮略圖,小2想了很多辦法,也從鄭力大神那看到用ps加數據庫批量的方法,可是小2站里圖片太多,縮略圖尺寸也復雜不一,曾經還做過中文文件名md5轉換,用ps家數據庫批量的方法實在是復雜和累人!

疑問

如何才能快速又方便的解決wordpress縮略圖尺寸重新裁剪的問題呢?

從奶嘴那了解到谷歌的timthumb很好用,小2就百度了下,確實找到相關的文獻,通過摸索,現在通過timthumb就可以自由的給縮略圖裁剪自己設定的縮略圖,可以說一個文章的縮略圖可以有幾個縮略圖的尺寸,做到全站所有要展現縮略圖的地方的尺寸都是最清晰的!

解決問題

下面我們直接說教程吧

  1. <?php
  2. function?post_thumbnail(?$width?=?100,$height?=?80?){
  3. ????global?$post;
  4. ????if(?has_post_thumbnail()?){????//如果有縮略圖,則顯示縮略圖
  5. ????????$timthumb_src?=?wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'full');
  6. ????????$post_timthumb?=?'<img?src="'.get_bloginfo("template_url").'/timthumb.php?src='.$timthumb_src[0].'&amp;h='.$height.'&amp;w='.$width.'&amp;zc=1"?alt="'.$post->post_title.'"?class="thumb"?/>';
  7. ????????echo?$post_timthumb;
  8. ????}?else?{
  9. ????????$post_timthumb?=?'';
  10. ????????ob_start();
  11. ????????ob_end_clean();
  12. ????????$output?=?preg_match('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i',?$post->post_content,?$index_matches);????//獲取日志中第一張圖片
  13. ????????$first_img_src?=?$index_matches?[1];????//獲取該圖片?src
  14. ????????if(?!empty($first_img_src)?){????//如果日志中有圖片
  15. ????????????$path_parts?=?pathinfo($first_img_src);????//獲取圖片?src?信息
  16. ????????????$first_img_name?=?$path_parts["basename"];????//獲取圖片名
  17. ????????????$first_img_pic?=?get_bloginfo('wpurl').?'/cache/'.$first_img_name;????//文件所在地址
  18. ????????????$first_img_file?=?ABSPATH.?'cache/'.$first_img_name;????//保存地址
  19. ????????????$expired?=?604800;????//過期時間
  20. ????????????if?(?!is_file($first_img_file)?||?(time()?-?filemtime($first_img_file))?>?$expired?){
  21. ????????????????copy($first_img_src,?$first_img_file);????//遠程獲取圖片保存于本地
  22. ????????????????$post_timthumb?=?'<img?src="'.$first_img_src.'"?alt="'.$post->post_title.'"?class="thumb"?/>';????//保存時用原圖顯示
  23. ????????????}
  24. ????????????$post_timthumb?=?'<img?src="'.get_bloginfo("template_url").'/timthumb.php?src='.$first_img_pic.'&amp;h='.$height.'&amp;w='.$width.'&amp;zc=1"?alt="'.$post->post_title.'"?class="thumb"?/>';
  25. ????????}?else?{????//如果日志中沒有圖片,則顯示默認
  26. ????????????$post_timthumb?=?'<img?src="'.get_bloginfo("template_url").'/images/default_thumb.gif"?alt="'.$post->post_title.'"?class="thumb"?/>';
  27. ????????}
  28. ????????echo?$post_timthumb;
  29. ????}
  30. }
  31. ?>

將上面的代碼放進wordpress主題文件夾的functions.php內,然后下載文章底部的?timthumb.php 文件放到wordpress主題的根目錄下!

然后通過

  1. <?php?post_thumbnail(243,182);??>

這個函數就可以調用出裁剪好尺寸為243*182的縮略圖了,相應的縮略圖結構代碼參照:

  1. <a?href="<?php?echo?get_permalink();??>"?title="<?php?the_title();??>"><?php?post_thumbnail(243,182);??></a>

其中243代表寬,182代表高,你們在使用的時候替換成你們的尺寸即可!

然后我們還要給網站根目錄下創建cache目錄,并給予777權限,這樣就可以全自動調用裁剪好的縮略圖了,而這些縮略圖也就都存在了cache文件夾里,使用起來很方便!

衍生疑問

這個時候有人會問,那系統自帶的生成縮略圖的功能這么辦?每次上傳圖片,系統都會生成幾個尺寸的縮略圖,有了timthumb還需要系統自帶的縮略圖生成功能嗎?小2的回答是:隨便你!

wordpress批量刪除全部文章縮略圖的方法可以下載一些插件來進行刪除!

關于wordpress縮略圖尺寸重新裁剪,這是timthumb篇,還有七牛篇以后再介紹給大家!

衍生疑問2

最近聽奶嘴說timthumb有權限上漏洞,反正大叔不懂,這里就穿插個教程吧,nginx與Apache禁止目錄執行php文件權限!

以下配置均在nginx配置的server處添加

  1. location?~?/cache/.*.(php|php5)?$?{
  2. deny?all;
  3. }

禁止cache目錄執行php文件權限

2、多個目錄

  1. location?~?/(cache|upload)/.*.(php|php5)?$?{
  2. deny?all;
  3. }

禁止cache與upload目錄執行php文件權限

配置完后,重新reload nginx即可。

1、單個目錄
Apache禁止目錄執行php文件權限
以Apache 模塊方式運行 PHP,你可以在vhosts配置文件中添加如下代碼:

  1. <Directory?/www/www./upload>
  2. php_flag?engine?off
  3. </Directory>
  4. <Directory?~?"^/www/.*/upload">
  5. ?<Files?~?".php">
  6. ?Order?allow,deny
  7. ?Deny?from?all
  8. ?</Files>
  9. </Directory>

禁止upload目錄執行php文件權限
友情提示,這個nginx中和apache+windows設置目錄權限方法是有所區別的

文件下載

小編生怕代碼高亮有問題,特地將functions.php和timthumb.php都打包給大家來下載!

有用0
  • 2014.01.01初次和大家見面了!

已擁有4人對該主題的建議

  1. 我擦,引用代碼提示含有違禁語句

    2015-08-07 下午 3:23 [回復]
  2. 縮略圖結構代碼放在什么地方

    2015-08-07 下午 3:22 [回復]
  3. 0樓
    三子(3zi.me):

    很不錯。。。

    2014-03-16 下午 1:27 [回復]
  4. 2014-01-22 下午 12:43 [回復]

發表評論

還能輸入240個字

Hi, 歡迎加入Wordpress技術交流群,帶你裝逼帶你飛!

我要入群
也想出現在這里?聯系我們
wordpress加速

我來推薦一個更牛逼的給你看看?

  • 猛戳我吧
夫妇野外交换HD高清版,免费A片在线观看,亚洲精品国产自在现线,中国老妇人60OLDMANTV