問題描述

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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。