如何限制wp生成附件元数据()到某些中间图像大小

时间:2017-10-16 07:22:19

标签: php wordpress upload

在Wordpress中,我们使用add_image_size()将我们自己的中间图像大小添加到标准的Wordpress大小。

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

但是,我们希望限制wp_generate_attachment_metadata()仅生成我们自定义的图像大小,并忽略Wordpress标准大小。

这可能吗?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

在使用名为$sizes的wp_generate_attachement_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' );

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

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

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