有没有在生成所有缩略图后触发的钩子?

时间:2017-02-09 作者:sydev

我想将图像和所有生成的缩略图上载到另一台服务器(作为备份)。我只找到了add_attachment, 但这是在上传图像和更新Posteta表后立即触发的。

我想等到生成所有缩略图大小,然后将文件上载到其他服务器。有符合我期望的钩子吗?

1 个回复
最合适的回答,由SO网友:user6552940 整理而成

WordPress中的缩略图可以通过使用wp_generate_attachment_metadata(), 此函数在生成所有缩略图后激发筛选器wp_generate_attachment_metadata 过滤器提供$metadata$attachment_id 到挂钩函数。

您可以将自定义函数挂钩到此过滤器。

$metadata : 附件元数据。你需要的是$metadata[\'sizes\'][\'<size-name>\'], 这个<size-name> 缩略图大小的名称是由add_image_size() 或默认值。e、 g。

$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) 检索缩略图URL。

(Optional) : 安装Force Regenerate Thumbnails 用于重新运行的插件wp_generate_attachment_metadata() 对于以前上传的图像也是如此。

相关推荐

Host images only on CDN

我开发了一个wordpress网站,该网站托管在AWS上。该网站运行良好,但由于我希望它成为一个电子商务网站,将有大量的图像。AWS的托管帐户仅提供30 GB的存储空间。所以我想host images completely on an external CDN off my server. 但最近对CDN的搜索导致我只缓存CDN,我希望只在其他服务器上托管图像。有线索吗?