问题描述
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_src
,wp_get_attachment_image
,wp_get_attachment_link
。
所有这些功能都接受一个参数 $size
,该参数应该是注册尺寸之一 (3 个标准中的一个,或者是用 add_image_size
注册的自定义尺寸之一) 的名称。
如果使用'full'
作为 $size
参数,则返回原始图像,不能调整大小。
除了上述功能之外,还有另外两个功能可以利用图像大小:get_the_post_thumbnail
和 the_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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。