为什么在激活后缩略图后_POST_THIBMAPHNAL会输出全尺寸的图像?

时间:2017-08-02 作者:Luca Reghellin

我的意思是:

add_action( \'after_setup_theme\', \'thumbs_setup\' );
function thumbs_setup() {
  add_theme_support( \'post-thumbnails\' );
}
我的媒体设置在缩略图上是150x150px,但现在the_post_thumbnail() 将输出全尺寸图像。为什么?

我明白了the_post_thumbnail() 要真正输出缩略图大小,需要显式传递它:

the_post_thumbnail(\'thumbnail\')

为什么?

2 个回复
最合适的回答,由SO网友:Luca Reghellin 整理而成

我认为添加对“post缩略图”的支持也会添加一种新的大小类型:“post缩略图”。但“发布缩略图”is not == \'“拇指”或“缩略图”,这是一种新的、不同的类型。而且the_post_thumbnail() 如果在没有参数的情况下调用,将输出“post缩略图”大小,而不是“thumb”大小。

“thumb”(或“thumbnail”)是通过管理媒体面板设置的,而“post thumbnail”不是。

由于尚未设置“后期缩略图”大小,因此the_post_thumbnail() 不知道使用什么大小,因此将输出完整图像。

要设置“后期缩略图”大小,必须使用标准add-image-size() 将“post thumbnail”作为名称传递,或仅使用set_post_thumbnail_size().

SO网友:cjbj

the_post_thumbnail 不幸的是,它的名字是,因为它暗示了一个小图像,但实际上指的是一篇文章的特色图像。添加对它的支持只会使“特色图像”框在您的帖子编辑器中可用。

现在,如果你look at the source code, 您可以看到,如果调用时没有指定大小the_post_thumbnail, 大小定义为post-thumbnail. 但是,这不是为每个图像生成的默认缩略图的名称,即thumbnail. 默认情况下,不会生成名为“后期缩略图”的图像大小。因此,WP将使用完整图像。

有几种方法可以解决这个问题,但最简单的方法是使用get_the_post_thumbnail, 所使用的函数the_post_thumbnail. 您可以将默认呼叫从“post thumbnail”重新路由到“tumbnail”,如下所示:

add_filter (\'post_thumbnail_size\',\'wpse275569_post_thumbnail_size\');
function wpse275569_post_thumbnail_size ($size) {
  if ($size == \'post-thumbnail\') $size = \'thumbnail\';
  return $size;
  }

结束

相关推荐