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