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