¿Cómo deshabilitar la generación de tamaños de imagen predeterminados para algunos tipos de publicaciones personalizadas?

11

Utilicé tipo de publicación personalizada, donde no se requiere el tamaño 'miniatura', 'mediano' y 'grande'. Necesito deshabilitar estos tamaños y crear una función o complemento, donde puedo configurar, qué tamaño de imagen se requiere para cada tipo de publicación personalizada.

Mi primer paso es enlazar la función get_intermediate_image_sizes desde wp-includes / media.php. He añadido este código a functions.php pero no funciona :(

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: La edición de esta línea en media.php está funcionando. Tipos predeterminados después de los cambios no generados.

$image_sizes = array('thumbnail', 'medium', 'large');

¿Pero cómo hacer funcionar mi gancho?

    
pregunta Bohdan Hdal 11.12.2011 - 19:39

1 respuesta

6

Creo que la única solución que tiene en este momento es deshabilitar todos los tamaños de imagen intermedios:

add_filter( 'intermediate_image_sizes', '__return_empty_array', 99 );

Y luego, genérelos manualmente, según el tipo de publicación, enganchándolos a 'wp_generate_attachment_metadata', donde tiene acceso al ID de archivo adjunto (y, por lo tanto, a su publicación principal):

function do_your_stuff( $data, $attachment_id ) {
  // generate intermediate images

  return $data;
}

add_filter( 'wp_generate_attachment_metadata', 'do_your_stuff', 10, 2 );
    
respondido por el scribu 12.12.2011 - 03:15

Lea otras preguntas en las etiquetas