问题描述

set_post_thumbnail_size 和 add_image_size 有什么区别?对于所有图像,set_post_thumbnail_size 是否为 add_image_size?

谢谢。

最佳解决方案

当图像上传到 WordPress 中时,它将保存为原始大小,也可以保存为不同大小的一些已调整大小的副本。以这种方式,为了不同的目的,变得容易使用相同图像的不同尺寸。

默认情况下,WordPress 创建 3 个不同大小的副本:

  • 'thumb'

  • 'medium'

  • 'large'

可以在 WordPress 仪表板的菜单 Settings -> Media 下设置这 3 种尺寸的像素大小。

现在,函数 add_image_size 用于注册一个新的大小,增加了 3 个默认值。

可以使用其名称,某些 WordPress 功能,例如, wp_get_attachment_image_srcwp_get_attachment_imagewp_get_attachment_link

所有这些功能都接受一个参数 $size,该参数应该是注册尺寸之一 (3 个标准中的一个,或者是用 add_image_size 注册的自定义尺寸之一) 的名称。

如果使用'full'作为 $size 参数,则返回原始图像,不能调整大小。

除了上述功能之外,还有另外两个功能可以利用图像大小:get_the_post_thumbnailthe_post_thumbnail

这两个函数得到 (第一个) 和回显 (第二个) 为一个帖子设置为”Featured Image” 的图像。

这些函数返回 (或回显) 是一个完整的 img html 标签,类似于

<img scr="http://www.example.com/wp-content/2013/08/image-200x200.jpg" />

那么,哪个是使用的尺寸?

如果 $size 作为第二个参数传递 (第一个是 $postid),则这些函数返回该大小的图像。否则,这些功能将搜索以 post-thumbnail 名称注册的图像大小。

这不是 3 个默认大小之一,其实是第 4 个标准大小 (第 5 个被认为是 full),你可以注册它叫 set_post_thumbnail_size

所以

set_post_thumbnail_size( $width, $height, $crop );

是一个捷径

add_image_size( 'post-thumbnail', $width, $height, $crop );

如果没有调用 set_post_thumbnail_size(这意味着没有创建'post-thumbnail'的大小),WordPress 将使用大小 thumb,如果这个大小不可用,WordPress 将使用原始图像,而不是调整大小。

注册自定义图像大小在设计主题时非常有用,但重要的是不要滥用:每个上传的图像都会被复制和调整大小,以便注册所有的大小,因此注册大量会大大减慢图像上传过程。

一张纸条:

请注意,当 WordPress 创建缩放的图像副本时,它不会放大,但只能制作较小的副本:例如如果原始图像是 400×500 像素,并且’medium’ 图像大小为 800x600px,则不会创建中等大小。

所以注册图像大小永远不会给出 WordPress 内容文件夹中实际存在的每个大小的图像文件的安全性。即使注册的图像尺寸容易变化:更改设置,切换主题等

当图像尺寸发生变化时,由于任何原因,更改会对该更改后上传的图像产生影响; 上传的图像不要更改尺寸,不会重新缩放并重新保存。

如果在上传某些图像 (例如,在更改主题之后) 需要依赖于特定的图像大小,则插件 Regenerate Thumbnails 将是一个救命。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。