set_post_thumbnail_size与add_image_size


11

set_post_thumbnail_size和add_image_size有什么区别?是否set_post_thumbnail_size用于所有图像,并且add_image_size用于分别调整图像大小?

谢谢。

Answers:


26

在WordPress中上传图片时,图片会以其原始大小保存,并另存为具有不同大小的某些调整大小的副本。以这种方式,容易将不同尺寸的同一图像用于不同目的。

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

  • 'thumb'
  • 'medium'
  • 'large'

可以在WordPress信息中心的菜单下设置这3种尺寸的像素尺寸Settings -> Media

现在,该函数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_thumbnailthe_post_thumbnail

这两个函数获取(第一个)和回显(第二个)被设置为帖子的“功能图像”的图像。

这些函数返回(或回显)的是完整的imghtml标签,例如

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

那么,使用的大小是多少?

如果将a $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创建图像的缩放副本时,它不会放大图像,而只会复制较小的副本:例如,如果原始图像为400x500px,“中”图像尺寸为800x600px,则不会创建中等尺寸和较大尺寸。

因此,注册图像大小永远不会保证WordPress内容文件夹中实际存在每种已注册大小的图像文件。即使已注册的图像大小容易更改:更改设置,切换主题等。

当图像大小改变时,无论出于何种原因,该改变都会对更改上传的图像产生影响。之前上传的图像不会更改尺寸,也不会重新缩放和重新保存。

如果在某些图像已经上传后(例如,在更改主题之后)需要依靠特定的图像尺寸,则插件Regenerate Thumbnails将可以节省生命。


2
太棒了 由于您的回答,我会点击5次,但该网站不允许这样做。谢谢。
Greeso

不客气,现在还可以:)
gmazzap

再问一个问题:如果我没有调用set_post_thumbnail_size(这意味着未创建“ post-thumbnail”的大小,那我会叫the_post_thumbnail。会发生什么?(因为the_post_thumbnail会尝试将post-thumbnail用作参数)
。– Greeso

@GM,竖起大拇指以提供清晰的解释
Istiaque Ahmed

这个答案很有帮助!但是,我认为这是: set_post_thumbnail_size( 150, 150 ); If you haven't called set_post_thumbnail_size (which means the size 'post-thumbnail' is not created), WordPress will use the size thumb, and if even this size is not available, WordPress will use the original image, the one not resized. ...不正确。根据我的测试经验,如果set_post_thumbnail_size()尚未调用,WP会退回到原尺寸图像。
Travis Northcutt 2015年

1

从食典:

set_post_thumbnail_size

设置默认的“特色图像”(以前称为“缩略图”)尺寸。要为“特色图像”注册其他图像尺寸,请使用:add_image_size()。

add_image_size

注册新的图像尺寸。这意味着当您上传新图像时,WordPress将创建具有指定尺寸的“特色图像”(以前称为“发布缩略图”)的副本。


我可以不使用set_post_thumbnail_size来使用add_image_size吗?
格里索

当然是。
KrzysiekDróżdż
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.