如何将 wp 生成附件元数据()限制为某些中间图像尺寸

Ric*_*ler 0 php wordpress upload

在 WordPress 中,我们使用 add_image_size() 将自己的中间图像尺寸添加到标准 WordPress 尺寸中。

使用我们自己的管理界面上传图像,然后使用 wp_generate_attachment_metadata() 创建所有缩略图并将它们保存到服务器上的预定义文件夹中。

然而,我们希望限制 wp_generate_attachment_metadata() 只生成我们自定义的图像尺寸并忽略 WordPress 标准尺寸。

这可能吗?

预先感谢您的任何帮助!

小智 6

看起来有一个$sizes用于使用 wp_generate_attachment_metadata() 时生成的数组的过滤器,称为intermediate_image_sizes_advanced

我发现这个片段应该可以解决问题,如果你把它放在某种函数文件中(通常它可能会放在你的functions.php文件中):

/**
 * Snippet Name: Disable auto creating of image sizes
 * Snippet URL: http://www.wpcustoms.net/snippets/disable-auto-creating-image-sizes/
 */
 function wpc_unset_imagesizes($sizes){
    unset( $sizes['thumbnail']);
    unset( $sizes['medium']);
    unset( $sizes['medium_large']);
    unset( $sizes['large']);
}
add_filter('intermediate_image_sizes_advanced', 'wpc_unset_imagesizes' );
Run Code Online (Sandbox Code Playgroud)

上面的代码片段应该从 wp_generate_attachment_metadata() 中使用的数组中删除所有默认的WordPress 图像大小$sizes,并且只生成您添加的任何自定义图像大小。

注意:我还没有测试过这段代码,但它对我来说是直接的。如果您希望过滤器仅影响您的“自己的管理界面”,您可能不希望将代码片段放入仅在您的管理界面中调用的单独函数文件中。

请参阅下面的函数和挂钩的开发人员参考:https://developer.wordpress.org/reference/functions/wp_generate_attachment_metadata/ https://developer.wordpress.org/reference/hooks/intermediate_image_sizes_advanced/