问题描述
我想将图像和所有生成的缩略图上传到另一个服务器 (作为备份) 。我只找到 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。