直接在 functions.php 实现WP原生缩略图支持

» 2011-05-08 70条评论

》WordPress 2.9 加入的缩略图(特色图片)功能,一般的使用方法是:

1. 在主题的 functions.php 加入缩略图支持函数:add_theme_support( 'post-thumbnails' );

2. 直接在 index.php/archive.php 用 <?php echo the_post_thumbnail(); ?> 调用(the_post_thumbnail() 函数说明地址:传送门

》我习惯是直接在 functions.php 完成所有:添加支持函数、直接插入文章开头。

》目前我新发布的主题和还在更新的老主题都用这种方式了,主要是懒 + 方便。

》下面说说方法:

1. 在主题的 functions.php 文件添加缩略图功能支持

add_theme_support( 'post-thumbnails' );

2. 定义图片大小,然后插入文章内容头部。

add_image_size( 'extra-featured-image', 100, 100, true ); //定义图片大小,这里是 100px*100px

function theme_featured_content($content) {
    if (is_home() || is_archive()) { //只在首页和文章列表页显示
        the_post_thumbnail( 'extra-featured-image' );
    }
    return $content;
}
add_filter( 'the_content', 'theme_featured_content',1 );

PS:the_post_thumbnail 函数可以通过参数来定义src、class、alt、title,如果不自定义class名,可以用函数默认生成的 class 来定义图片格式,这里的代码生成的class名是 attachment-extra-featured-image 。

3. 如果你要给缩略图加上链接,那么可以用下面的函数实现

function my_post_image_html( $html, $post_id, $post_image_id ) {
	$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '">' . $html . '</a>';
	return $html;
}
add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );

更详细的内容参考 http://codex.wordpress.org/Function_Reference/the_post_thumbnail

完。

zww
or
oooo

“直接在 functions.php 实现WP原生缩略图支持”有70条评论

  1. 疾风 says:

    试用过,感觉不太方便

    1. zwwooooo says:

      @疾风
      功能单一但实用吧

  2. 哦?感谢博主啊。缩略图这个问题困扰我很久了。

    1. zwwooooo says:

      @北京瞳摄影工作室
      这是原生支持功能啊

  3. Don says:

    如果我需要多尺寸的生成呢?

    1. zwwooooo says:

      @Don
      WP原生缩略图只支持一次定义一种尺寸

  4. 灰狼 says:

    这个功能帅呆了.

    1. zwwooooo says:

      @灰狼
      现在算是常用功能了

  5. liveme says:

    一步到位的方法,好是好,不过在某些个性调用的情况下或许不太好使。

    1. zwwooooo says:

      @liveme
      这个要开博时就使用比较好

  6. 自在 says:

    挺实用的

    1. zwwooooo says:

      @自在
      算是常用共能了

  7. seo says:

    博主我的博客CSS的框架是正方形的!
    当我调用长方形图片的时候,他就跟的比例缩小了!
    请问一下,怎么能让他自适成正方形?

    1. zwwooooo says:

      @卸妆油
      统一你的图片比例,或者用第三方的自动缩略图代码/插件。

      另外,评论别用神马产品名,很恶心的。

  8. SEO says:

    :oops: 现在换成SEO了,好的,我在试试呢,谢谢!我看了一下您的友情链接,也有SEO的链接,能否问一下,怎么样才能和您交换呢?

    1. zwwooooo says:

      @SEO
      上面的才是友链(已停止添加差不多2年),下面的是付费链接。另外评论不需要关键词,木有用的,用自己网名吧,如果你喜欢在各个博客走,那么最好申请个头像。

  9. 小宽哥 says:

    上次准备申请了,因为,因为英文有限,放弃了!
    :sad: 话说,你不换友链了吗 :???:

    1. zwwooooo says:

      @小宽哥
      停止友链应该差不多2年了吧

    2. 小宽哥 says:

      @zwwooooo
      那要不要从新出山换购链接呢?我的net404.com这个站每天收录和快照哦~标题是SEO实标上是个人博客! :grin:

  10. 调皮鬼 says:

    好奇怪,我在functions中添加第一段代码后保存,会报错。

    1. zwwooooo says:

      @调皮鬼
      你加上开启wp缩略图支持函数了么?

  11. 潇遥 says:

    zww.me的主题越来越霸气越来越牛叉了啊 :oops:

    1. zwwooooo says:

      @潇遥
      这……好像没啥变化吧。。。。还是感谢。

  12. niuniu says:

    版主,你有没有发现,wordpress4.4.7 版本,特色图就是默认的正方形,怎么改都改不过来。以前做很容易改。而且就算页面简化到只有三个文件:index.php、single.php、style.css。也无济于事,图片大小就是150x150像素。

    1. zwwooooo says:

      @niuniu 哈,不可能的,本身特色图片就可以自定义,你看我博客就不是 150*150

      1. niuniu says:

        @zwwooooo 真的,我看了好几个模版,他们都是,就算把特色图修改成400x280,其实原图还是150x150,只是做了拉伸变形,图片模糊就不用说了。我后来就没用任何模版,自己找相应的代码,直接调用相应的功能。

        1. zwwooooo says:

          @niuniu 前台和后台要匹配,就是如果主题显示的特色图片尺寸是 400*280,你后台要把特色图片(设置》媒体)大小改为 400*280,因为 WordPress 默认的缩略图大小是 150*150

发表评论

昵称 *

网址

B em del U Link Code Quote