两招提取WordPress文章缩略图

针对WordPress文章缩略图的提取教程,网上已经有很多,办法是很多的,本文只向大家推荐两招,希望对大家有用。

方法一:直接用函数抓取日志内容里的第一个图片。

在主题函数文件functions.php里添加代码:

function catch_that_image() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/
/i', $post->post_content, $matches);
$first_img = $matches [1] [0];
if(empty($first_img)){ //Defines a default image
$first_img = "在这里指定如果没有图片则显示的默认图片路径";
}
return $first_img;
}

在模板的主循环里,在你需要显示图片的位置中添加如下代码:

这样,就会自动调用内容里的第一个图片,如果没有图片,就自动显示指定的图片。

方法二:调用日志缩略图,并使用timthumb.php文件对图片大小进行限定。

首先下载最新的timthumb.php文件,保存到主题目录;

在主题函数文件functions.php文件里添加以下代码,以实现对内容里图片的提取:

/*开启日志缩略图*/
add_theme_support( 'post-thumbnails' );
function post_thumbnail( $width = 642,$height = 340 ){
    global $post;
    if( has_post_thumbnail() ){    //如果有缩略图,则显示缩略图
        $timthumb_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'full');
        $post_timthumb = ''.$post->post_title.'';
        echo $post_timthumb;
    } else {
        $post_timthumb = '';
        ob_start();
        ob_end_clean();
        $output = preg_match('//i', $post->post_content, $index_matches);    //获取日志中第一张图片
        $first_img_src = $index_matches [1];    //获取该图片 src
        if( !empty($first_img_src) ){    //如果日志中有图片
            $path_parts = pathinfo($first_img_src);    //获取图片 src 信息
            $first_img_name = $path_parts["basename"];    //获取图片名
            $first_img_pic = get_bloginfo('wpurl'). '/cache/'.$first_img_name;    //文件所在地址
            $first_img_file = ABSPATH. 'cache/'.$first_img_name;    //保存地址
            $expired = 604800;    //过期时间
            if ( !is_file($first_img_file) || (time() - filemtime($first_img_file)) > $expired ){
                copy($first_img_src, $first_img_file);    //远程获取图片保存于本地
                $post_timthumb = ''.$post->post_title.'';    //保存时用原图显示
            }
            $post_timthumb = ''.$post->post_title.'';
        } else {    //如果日志中没有图片,则显示默认
            $post_timthumb = ''.$post->post_title.'';
        }
        echo $post_timthumb;
    }
}

代码中$width = 642,$height = 340分别用来指定图片的宽度和高度,不管你的图片是大是小,最后都将以这个大小输出。

在模板中要显示图片的位置添加代码来显示图片:

这样就实现了指定大小图片的输出,对原来的图片自动裁切。

落花生

认准了方向,就要勇敢地走下去,十年磨一剑,我相信,只要坚持,一切都有可能。

相关日志

  1. 没有图片

    2009.07.12

    2008年度五十个国外最漂亮网站推荐

    08年的网页设计开始流行一些破旧的质感和一些…

  2. 没有图片

    2013.08.28

    WordPress主题 NewsPlus 安装使用教程

    很多朋友都在使用我发布的原版汉化作品 New…

  3. 没有图片

    2016.08.02

    Bootstrap 生成5栏技巧及代码

    玩Bootstrap的同学们都知道,Boot…

  4. 没有图片

    2010.09.16

    腾讯社区开放平台

    自从新浪出现开放平台之后,百度也接着开放了,…

  5. 2011.04.03

    WordPress自适应宽度主题 LSZ wpbus D2 完美版

    WordPress自适应宽度主题D2完美版的…

  6. 没有图片

    2010.06.24

    FireFox 3.6.4 正式版发布

    Firefox 3.6.3已经很久没升级了,…

评论

  1. codee 2013.07.09 3:01下午

    wordpress默认有缩略图么?

  2. 花皙蔻 2011.10.11 10:09上午

    方法不错!!!!!!!!!

  3. 手扑网 2011.07.07 11:46下午

    浏览你网站时出现以下错误Warning: copy([/) [function.copy]: failed to open stream: No such file or directory in /home/lawsky/domains/lisizhang.com/public_html/wp-content/themes/CoolWorld/functions.php on line 56

  4. 老衲 2011.06.13 4:36下午

    第二个是不是wp默认的那个

  5. 筑生活 2011.05.14 2:45下午

    思张哥,反映下,我按照你的第二种办法试过,但是出现http://i.min.us/inx2xU.jpg如图的情况,应该不是插件的情况,我插件很少的!这个能解决吗!

  6. Louis Han 2011.05.03 12:25下午

    timthumb.php方法还是比较好用的

    • 李思章 2011.05.03 1:27下午

      是的,这个都可以不用函数。

    • iioo 2012.04.07 6:43下午

      HI,博主的主题很漂亮啊,羡慕!!:

      想讨教下,左侧栏的固定,是怎么实现的呢?
      多谢!!!

About

马拉松运动员,沉迷于跑步;关注科技前沿,关注互联网!与跑者、程序员、设计师为伍,一起跑步健身,一起编写程序,为自由而战!