直接在 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:

    算函数介绍了~官方的codex是好东西哟~

    1. zwwooooo says:

      @林木木
      嗯嗯,但说一下吧

  2. axiu says:

    这个介绍挺详细的。

    1. zwwooooo says:

      @axiu
      直接CP就能用的 - -

  3. SErHo says:

    这个是自动将文章中的图片生成缩略图吗? :?:

    1. zwwooooo says:

      @SErHo
      no no no,只是让主题支持WP原生缩略图功能而已

  4. mopvhs says:

    那什么...我最近在改zBench玩...

    1. zwwooooo says:

      @mopvhs
      打算改成啥样啊?

    2. mopvhs says:

      @zwwooooo
      最大的改动,宽度978px,然后单页无侧栏这样...细节斟酌ing...

  5. elaphent says:

    学习一下 :?:

  6. 这个确实很方便

    1. zwwooooo says:

      @皇家元林
      嗯,只要扔到functions.php就行了

  7. 阿婆 says:

    有空还真的要试下 :mrgreen:

  8. Kars says:

    这货是干啥用的??

  9. A.shun says:

    等我换主题就搞缩略图(何年何月呀- -

    1. zwwooooo says:

      @A.shun
      的确是未知数。。。

  10. 奚少 says:

    学习学习~~~等折腾主题用~~

    1. zwwooooo says:

      @奚少
      嗯嗯,慢慢折腾

  11. stevejin says:

    是个不错的方法

    1. zwwooooo says:

      @stevejin
      其实就是官方的例子而已

  12. zrqx008 says:

    评论被拦截了?

    1. zwwooooo says:

      @zrqx008
      你的?木有啊,除非你是英文

    2. zrqx008 says:

      @zwwooooo 记起了,上次网络的问题,评论没有提交起。

    3. zwwooooo says:

      @zrqx008
      线路问题吧

  13. 这样整过就不用再加thumbnail自定义字段了吧

    1. zwwooooo says:

      @yesureadmin
      本来就不需要自定义字段。。。

  14. 电商圈 says:

    官方的缩略图有点不给力。。

  15. IM路人 says:

    我只用到了自定义域,缩略图是我自己截了之后FTP的~~

    1. zwwooooo says:

      @IM路人
      自定义域算是老方法吧,不过也灵活

  16. 呵呵,缩略能实现先切割,后伸缩的效果吗?

    1. zwwooooo says:

      @baros博客
      这只是让主题支持缩略图功能而已,WP原生缩略图可以在设置时生成你需要的尺寸

  17. wmtimes says:

    嗯。我用的那款主题中就有缩略图的功能。

    1. zwwooooo says:

      @wmtimes
      现在是主题标配了

  18. smilebull says:

    原生方便还速度

    1. zwwooooo says:

      @smilebull
      适合从一开始就加缩略图的

  19. 万戈 says:

    我还拿这个函数扩展了一下,写了一个更全面的,嘿嘿

    1. zwwooooo says:

      @万戈
      就是上次那个加了自动缩略图功能的?那个在大量图片的网站第一次访问会很占资源致使主机挂掉 - -

  20. 柚子 says:

    刚学,还不懂!

回复给 zwwooooo ¬
取消回复

昵称 *

网址

B em del U Link Code Quote