¿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?


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 );

¿Cuáles son los 10 y 2 parámetros que pasa al último add_filter?
— Lucas

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.