WordPress 文章缩略图

先吐槽下,今天网站速度实在是太慢了;周末无聊,看了下缩略图顺便弄上了,其实这主题已经添加了这个功能,不过没有调用而已。对于一般无缩略图的,按照如下即可:
一、在主题文件夹下的functions.php添加代码

// post thumbnail support 缩略图支持
	add_theme_support( 'post-thumbnails' );
function post_thumbnail( $width = 160,$height = 100 ){
    global $post;
    if( has_post_thumbnail() ){
        $timthumb_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'full');
        $post_timthumb = '<a href="'.get_permalink().'"><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" title="'.get_the_title().'"/></a>';
        echo $post_timthumb;
    } 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 '<a href="'.get_permalink().'"><img src="'.get_bloginfo("template_url").'/timthumb.php?w=160&amp;h=100&amp;src='.$strResult[1][0].'" title="'.get_the_title().'" alt="'.get_the_title().'"/></a>';
			} else {
				echo '<a href="'.get_permalink().'"><img src="'.get_bloginfo('template_url').'/images/random/'.rand(1,10).'.jpg" title="'.get_the_title().'" alt="'.get_the_title().'"/></a>';
			}
		}
	}

如果设置特色图像,那么首页缩略图就调用特色图像;如果没有设置特色图像,文章中有图片,则调用第一张作为缩略图,文章中没有图片,则调用/images/random文件夹中随机一张作为缩略图
二、在主题文件index.php,category.php里面适当的位置添加

<?php post_thumbnail(); ?>

三、添加适当的CSS样式

PS:本站现在使用的缩略图代码,同理添加到functions.php里面

//缩略图设置
add_theme_support('post-thumbnails');
set_post_thumbnail_size(200, 140, true);
//缩略图获取
function post_thumbnail($width = 200,$height = 140) {
    global $post;
    if ( has_post_thumbnail() ) {
    $domsxe = simplexml_load_string(get_the_post_thumbnail());
    $thumbnailsrc = $domsxe->attributes()->src;
    echo '<img width="200" height="140" 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="200" height="140" src="'.$strResult[1][0].'" alt="'.trim(strip_tags( $post->post_title )).'"  />';
        }else {
            echo '<img width="200" height="140" src="'.get_bloginfo('template_url').'/img/sj/'.rand(1,7).'.jpg" alt="'.trim(strip_tags( $post->post_title )).'"  />';
        }
    }
}

友情提示下:请在图片目录img下建立sj文件夹,其中随机图片请以1~7.jpg命名;有些图片目录可能为images,请注意区分和自行修改,调用方法同上...

评论 ( 5)
  1. 沙发
    糗呆呆 2013-08-28 07:09

    跟我之前用的代码差不多,后来还是觉得直接把图片上传到本地服务器比较好维护,就不用这么冗长的代码了

  2. 板凳
    过往云烟 2013-08-08 13:21

    comments-ajax测试

  3. 地板
    俄罗斯服务器 2013-08-07 03:28

    看着这么多的代码 有点头疼

  4. 4 楼
    Louis Han 2013-08-06 16:23

    wp缩略图的实现形式太多了