WordPress实现缩略图功能
WordPress内置的缩略图功能我不太喜欢。每次上传图片都会生成一个小图。不爽。
这是提供一种比较简单的方法,非常方便。从某些主题里面分离出来的。
缩略图功能
1,timthumb:实现缩略图。
- 最新版下载:http://code.google.com/p/timthumb/ (如存为timthumb.php)。
- 把timthumb.php放到wp主题的目录下(如../wp-content/themes/twentyten/)。
- 再在主题的目录下新建一个目录cache(应该是会自动生成的,有错误的话就自己手动)
里面有:
// external domains that are allowed to be displayed on your website$allowedSites = array ('flickr.com','picasa.com','blogger.com','wordpress.com','img.youtube.com',);
这些都是允许抓取的外部链接的图像,自己根据需要加上自己常用的。
2,主题目录下的functions.php
把下面两个函数丢进主题下面的functions.php里面。
function get_image_url($postID,$thumborno){ $iNum=''; // Get the post ID $iPostID = $postID; $files =& get_children("post_parent=$iPostID&post_type=attachment&post_mime_type=image"); if($files){ $keys = array_keys($files); $iNum=$keys[0]; } if( $thumborno == 1 ) { $sImageUrlSet = wp_get_attachment_thumb_url($iNum); } elseif( $thumborno == 2 ) { $sImageUrlSet =wp_get_attachment_medium_url($iNum); } else { $sImageUrlSet = wp_get_attachment_url($iNum); } /* 这里开始调用c12pulltheimgurl函数,抓取外部图片。 不需要调用外部图片的,可注释掉*/ if( empty($sImageUrlSet) ) { $thepostimages = c12pulltheimgurl($iPostID); foreach($thepostimages as $thepostimage) { $sImageUrlSet=$thepostimages[0]; } } /* 调用外部图片这里结束 */ if( !empty($sImageUrlSet) ) { $sImageUrl = $sImageUrlSet; if($AntisnewsOptions[$themeoptionsprefix.'_precleanthumburl'] == "on"){ $sImageUrl=prepsimageurl($sImageUrl); } } else { $sImageUrl='http://liucheng.name/wp-content/themes/premiumnews/images/no-img-thumb.jpg'; //都没有图片时,指定一个默认的图片 } return $sImageUrl; } function c12pulltheimgurl($thepostid) { $theimgstring=get_the_content($thepostid); $c12tcmts = '/<img (?:.*?)src=(?:"|\'){1}(.*?)(?:"|\'){1}/is'; $theimgmtchesarr = array(); $procmatchs = preg_match_all($c12tcmts,$theimgstring,$theimgmtchesarr); if( $procmatchs!==false && isset($theimgmtchesarr[1]) ) { return $theimgmtchesarr[1]; } else { return false; } }
3, 在需要显示缩略图的地方用下面的代码调用:
<?php $thecimage = get_image_for_crop($post->ID,$thumborno=1);?> <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><img src="<?php echo bloginfo('template_url'); ?>/timthumb.php?src=<?php echo $thecimage; ?>&w=100&h=57&zc=1&q=95" alt="<?php the_title(); ?>" /></a>
解释一下上面的&w=100&h=57&zc=1&q=95。 w是宽,h是高,zc可选0(不按原图的比例缩放)和1(按原图的比例),q是生成缩略图的质量,100最大。
其它的css 样式就自己搞定了。。
效果看本站。。 一直都在用的。。
~完
有点相关的文章
- WordPress 中文文档 (0.500)
- 让Google给你的网站加速,快马加鞭,节省流量 (0.500)
- Premiumnews:一款优秀的3 栏 CMS 主题 (0.500)
- WPCleaner-删除修订版或草稿,减小空间 (0.500)
- 为你的wordpress添加留言本(两种方法) (0.500)
- 添加文章阅读次数插件:WP-PostViews 1.40详细用法 (RANDOM - 0.500)
WordPress自带的上传图片的程序也不好
是不好。。太麻烦了。幸好不常用。
我好像常用。不想折腾的人就凑乎着用。
代码里有点错误,get_image_for_crop和函数里的不一致,不能正常工作,改成一致就可以了。
倒是蛮特别的东西
我也用这个,嘿嘿 [亲亲]
[可怜] 这个东西蛮好用的,就是新版本貌似有问题,会重复生成那些生成过的缩略图,用老版本就木有那个问题… [擦汗]
既然有这种问题。。。 [擦汗]
前段时间发现的..就因为这个PHP文件CPU直接涨到70%(新版本的),换了老版本以后就变成30%了..我也没具体研究什么原因造成的..
呵呵,我的主题自带了。。。
不懂技术,只是在我的WP中装了个auto-save-images,感觉还不错,
很少用到缩略图..需要的时候才手动添加…
内置的缩略图我关掉了。也不怎么会用到缩略图的功能。
柳城,不知道怎么的,觉得你的网站访问速度变慢了。在miaoVIP上,最好的插件应当是wp super cache哦。 [呲牙]
看来是个高手。。
基本上没用上缩略图。
这个方法也有缺陷,就是如果传的图太大,半天没显示,也许很多人都懒得看了。
其实是很快的。。
我的WP貌似用的插件
论坛是代码 呵呵
您好,我的站是做母婴产品的,可以的话,可以交换链接吗
不错。不过一般不上传图片
挺不错的啊!!你们用不用我不管,反正我收了!!
谢谢了 收藏备用
这个插件我就不需要了
有点麻烦,主主题自带的就行了
已经收藏,以后能用得到。
还好主题自带有缩略图功能··
过来看看你们这些高手
收藏了,能用得上
感觉这个更好看一些,谢谢分享 [强]
很麻烦。
这个插件会不会增加程序负担,速度变慢呢?
什么程序都会。。 运行就需要时间。
什么都不要用就最快了。
很受益
效果不错,收藏以后备用。
支持下 我的小站www.5atuango.com [得意]
感觉博主的知识真是太渊博了
哈哈 期盼的很久,终于看到了
下载了用用先,谢谢博主
我对PHP不懂,下载下来用用下。
刚接触wp模板制作,好多函数都要记住,这篇文章先暂时留着吧
不错。这样制造就可以自定义了!
用过timthumb 不错
我也在用 感觉不错 不用折腾 [呲牙]
我用的是鸟类网的插件
有用过,不过在wp_options里有非常多多余的数据。。就不用了
正在学习wp.
这是好东西。先学了。后面用的时候自然就好办了。
恩,跟着学习一下
我是来学习与观摩的,嘿嘿 [可爱]
这个缩略图的怎么实现的啊,能帮我改改么,我折腾了两天了,我不想用插件实现,用这种函数怎么改的,能帮我该下么?嘿嘿
按上面的代码,直接能用的啦。还要改什么?
楼主这样做麻烦多了,只需要 修改media.php文件即可
要把’alt’ => trim(strip_tags( get_post_meta($attachment_id, ‘_wp_attachment_image_alt’, true) )), // Use Alt field first
’title’ => trim(strip_tags( $attachment->post_title )),
改成:
’alt’ => the_title(”,false,”),
’title’ => the_title(”,false,”),
没有那么麻烦,下面是我写的文章:
http://www.saxue.com/wordpress/wordpress-insert-image/
不升级随便你改。。
拜读而过···
好用啊,值得推荐
还是没大看明白啊
好用啊,值得推荐
基础差看了半天都没搞出效果来。
代码有错误啊 [疑问]