问题描述
我使用自定义帖子类型,其中’thumbnail’,’medium’ 和’large’ 大小不需要。我需要禁用此大小并创建功能或插件,我可以设置,每个自定义帖子类型需要哪个图像大小。
我的第一步是从 wp-includes /media.php 挂接 get_intermediate_image_sizes 功能。我已经将这段代码添加到 functions.php,但它不工作:(
add_filter('get_intermediate_image_sizes', 'get_intermediate_image_sizes_fixed');
function get_intermediate_image_sizes_fixed() {
global $_wp_additional_image_sizes;
//$image_sizes = array('thumbnail', 'medium', 'large'); // Standard sizes
$image_sizes = array();
if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) )
$image_sizes = array_merge( $image_sizes, array_keys( $_wp_additional_image_sizes ) );
return apply_filters( 'intermediate_image_sizes', $image_sizes );
}
UPD:在 media.php 中编辑这行正在工作。默认类型更改后不生成。
$image_sizes = array('thumbnail', 'medium', 'large');
但是如何使工作成为我的钩子?
最佳解决方案
我认为目前唯一的解决方案是禁用所有中间图像大小:
add_filter( 'intermediate_image_sizes', '__return_empty_array', 99 );
然后通过挂接到 「wp_generate_attachment_metadata」,您可以访问附件 ID(因此它是父帖子),手动生成它们,具体取决于帖子类型:
function do_your_stuff( $data, $attachment_id ) {
// generate intermediate images
return $data;
}
add_filter( 'wp_generate_attachment_metadata', 'do_your_stuff', 10, 2 );
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。