問題描述
我想將影像和所有生成的縮圖上傳到另一個伺服器 (作為備份) 。我只找到 add_attachment,但是在上傳影像並更新了 postmeta 表之後才會被觸發。
我想等到生成所有的縮圖大小,然後取出檔案並將其上傳到其他伺服器。有什麼鉤子符合我的期望嗎?
最佳解決方案
WordPress 中的縮圖可以透過使用 wp_generate_attachment_metadata()生成,該功能在生成所有縮圖‘wp_generate_attachment_metadata’ 後觸發一個過濾器,並且過濾器為掛鉤的函式提供 $ metadata 和 $ attachment_id 。您可以將自定義功能掛接到此過濾器。
$ metadata:附件後設資料。您需要的是 $ metadata [‘sizes’][‘size-name’],’size-name’ 是由 add_image_size() 或預設值新增的縮圖大小的名稱。例如
$metadata[sizes] => Array
(
[thumbnail] => Array
(
[file] => example_image-150x150.jpg
[width] => 150
[height] => 150
[mime-type] => image/jpeg
)
[medium] => Array
(
[file] => example_image-4-300x194.jpg
[width] => 300
[height] => 194
[mime-type] => image/jpeg
)
[mysize] => Array
(
[file] => example_image-4-400x400.jpg
[width] => 400
[height] => 400
[mime-type] => image/jpeg
)
)
從這裡您可以知道某些附件存在哪些大小,只能上傳這些尺寸/縮圖。要使這些縮圖使用像 wp_get_attachment_image_src($ id,$ size_name) 這樣的功能來檢索縮圖。 (可選):安裝強制再生縮圖外掛,以重新執行以前上傳的影像的 wp_generate_attachment_metadata() 。讓我知道,如果這適用於你。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。