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

12

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

Mi primer paso es conectar la función get_intermediate_image_sizes desde wp-includes / media.php. He agregado 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: Editar esta línea en media.php está funcionando. Tipos predeterminados después de que los cambios no se generen.

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

¿Pero cómo hacer trabajar mi gancho?

Bohdan Hdal
fuente
1
quisiera una respuesta a esto también
urok93
2
Así no es como usas ese filtro. Para borrar los tamaños predeterminados, solo necesita agregarlo con una prioridad muy baja y devolver una matriz vacía. Sin embargo, eso no resolverá su problema, ya que afectará a todos los tipos de publicaciones. No creo que haya una manera de hacer lo que quieres en la versión actual de WP. Intente solicitar a los desarrolladores de WP que agreguen el $attachment_idargumento al filtro dentro de esta función. De esa manera puede verificar el tipo de publicación dentro de su gancho
onetrickpony
Mi paso es solo experimentar pero no una solución completa. ¿Cómo puedo usar el filtro correctamente? PD Gracias por el enlace ..
Bohdan Hdal
¿Algún cambio en WP que lo haga posible ahora?
Drivingralle
Sin cambios. Sigue siendo el mismo problema.
Bohdan Hdal

Respuestas:

7

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 generarlos manualmente, dependiendo del tipo de publicación, enganchándose a 'wp_generate_attachment_metadata', donde tiene acceso a la identificación del 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 );
scribu
fuente
¿Cuáles son los 10 y 2 parámetros que pasa al último add_filter?
Lucas