如何更改存储的不同大小的图像的数量?

时间:2013-05-29 作者:alex

对于自定义插件,我使用WP的媒体上传程序。如何更改存储的不同图像大小的数量?目前,该主题使用5种不同的图像大小,对于我的插件,我只需要2个存储两种图像大小?

当做

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

上载图像的其他图像大小由创建wp_generate_attachment_metadata() 文件上载后。可用大小的数组填充为get_intermediate_image_sizes() (缩略图、中、大+自定义大小),稍后用于创建图像。

上述两个函数都有过滤器,用于覆盖此任务期间WordPress可用的大小,intermediate_image_sizes_advancedintermediate_image_sizes 分别地通过挂接这些过滤器中的任何一个,您应该能够删除不需要的大小。我建议使用intermediate_image_sizes 因为它是在前面执行的,所以您只需过滤字符串数组(图像大小标识符)。

add_filter(\'intermediate_image_sizes\', \'wpse_101197_image_sizes\');
function wpse_101197_image_sizes($sizes) {

    if (($key = array_search(\'size_1\', $sizes)) !== false) {
        unset($sizes[$key]);
    }

    return $sizes;
}
然而,这并不是说当你处理插件中的上传时,只应用这个过滤器是关键,因为你最终会从WordPress全局删除图像大小。因此,在完成上传后,不要忘记删除过滤器。还要记住,WordPress希望每个图像都有不同的大小——如果找不到特定大小的图像,那么最终会得到最大的图像。

结束

相关推荐

Hover images and Videos

我用这个代码在我的博客上显示视频循环。它工作得很好。作用phpfunction catch_video() { global $post, $posts; $first_vid = \'\'; ob_start(); ob_end_clean(); $output = preg_match_all(\'/<iframe.+src=[\\\'\"]([^\\\'\"]+)[\\\'\"].*>/i\', $post->post_c