我使用了自定义的帖子类型,其中不需要“缩略图”、“中”和“大”大小。我需要禁用这个大小,并创建功能或插件,在那里我可以设置每个自定义帖子类型需要的图像大小。
我的第一步是从wp includes/media挂接get\\u intermediate\\u image\\u size函数。php。我已将此代码添加到函数中。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: 在媒体中编辑此行。php正在运行。未生成更改后的默认类型。
$image_sizes = array(\'thumbnail\', \'medium\', \'large\');
但如何让工作成为我的钩子呢?
最合适的回答,由SO网友:scribu 整理而成
我认为目前唯一的解决方案是禁用所有中间图像大小:
add_filter( \'intermediate_image_sizes\', \'__return_empty_array\', 99 );
然后根据帖子类型,通过挂接到“wp\\u generate\\u attachment\\u 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 );