Cambiar el tamaño de la miniatura de la publicación del administrador solo para el tipo de publicación personalizada

2

Quiero cambiar el tamaño de la imagen realizada para un solo tipo de publicación personalizada. Esto es lo que tengo actualmente:

function custom_admin_thumb_size($thumb_size){

    global $post_type;
    if( 'slider' == $post_type ){

        return array(1000,400);

    }else{

        return array(266,266);
    }

}
add_filter( 'admin_post_thumbnail_size', 'custom_admin_thumb_size');

Esta función hace lo que esperaba, pero me preguntaba si hay algún método mejor para llamar al "control deslizante" de tipo de publicación personalizado sin tocar los demás.

Gracias de antemano

    
pregunta Wilco 03.04.2017 - 08:44

2 respuestas

3

admin_post_thumbnail_size toma tres parámetros:

  1. $ thumb_size: Tamaño del pulgar seleccionado si no hace nada en el filtro.

  2. $ thumbnail_id: ID de archivo adjunto en miniatura.

  3. $ post: instancia WP_Post asociada

Por lo tanto, puede utilizar estos parámetros para tener un mejor control de su CÓDIGO. Use el CÓDIGO como se muestra abajo:

function custom_admin_thumb_size( $thumb_size, $thumbnail_id, $post ) {
    if( 'slider' === $post->post_type ) {
        return array( 1000, 400 );
    }

    return $thumb_size;
}
add_filter( 'admin_post_thumbnail_size', 'custom_admin_thumb_size', 10, 3);
    
respondido por el Fayaz 03.04.2017 - 10:38
1

No hay un filtro para hacer esto solo para un determinado tipo de correo, pero puedes usar get_post_type( esc_attr( $_GET['post'] ) ) para guardar 1 línea de código básicamente.

También puede eliminar la sentencia else, ya que su sentencia if tiene una devolución que no alcanzará después de la de todos modos. Aparte de eso, esto es básicamente lo que haces.

function custom_admin_thumb_size( $thumb_size ){

    if( 'slider' == get_post_type( esc_attr( $_GET['post'] ) ) ) {

        return array( 1000, 400 );

    }

    return array( 266, 266);

}
add_filter( 'admin_post_thumbnail_size', 'custom_admin_thumb_size' );
    
respondido por el Jeffrey von Grumbkow 03.04.2017 - 09:13

Lea otras preguntas en las etiquetas