¿Cómo obtener la URL de la miniatura de la publicación de tamaño mediano en wordpress?

2 minutos de lectura

avatar de usuario
usuario2718671

Lo que descubrí hasta ahora:

Tengo una consulta como esta:

$categories=get_category_by_slug('my_category_slug')
$posts_array = get_posts( array('category'=>$categories->cat_ID, 'numberposts' => -1 ));
foreach($posts_array as $post_array){
    $queried_post = get_post($post_array->ID);
    //I can get the source file link this way: wp_get_attachment_url( get_post_thumbnail_id($queried_post->ID))
}

Pero el archivo fuente es demasiado grande. Funciones como the_post_thumbnail( medium ) no funcionará para mí porque no es solo url. Es una URL con un envoltorio de etiqueta de imagen, etc. Entonces, ¿hay alguna manera de obtener el enlace al archivo de tamaño mediano (o pequeño)?

También es posible configurar el tamaño de la miniatura de la publicación en functions.php después de la línea con el soporte del tema y la miniatura posterior:

add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 300, 300 );

No lo intenté, pero no quiero establecer el tamaño de todas las miniaturas.

avatar de usuario
marin atanasov

Usar wp_get_attachment_image_src(get_post_thumbnail_id($post_array->ID), 'medium').

Esto le devolverá una matriz con URL, ancho, alto y modo de recorte de esta imagen.

EDITAR: Actualizando para agregar el código completo:

$categories = get_category_by_slug('my_category_slug');
$posts_array = get_posts( array('category' => $categories->term_id, 'numberposts' => -1 ));
foreach($posts_array as $post_array){
    if( has_post_thumbnail($post_array->ID) ) {
        $image_arr = wp_get_attachment_image_src(get_post_thumbnail_id($post_array->ID), 'medium');
        $image_url = $image_arr[0]; // $image_url is your URL.
    }
}

  • Gracias, pero wp_get_attachment_image_src($post_array->ID, “medium”) y wp_get_attachment_image_src($queried_post->ID, “medium”) no funcionaron

    – usuario2718671

    3 sep 2014 a las 14:22

  • Ah, ya veo. $post_array es su publicación, no su archivo adjunto. He editado mi código anterior, siéntete libre de probarlo.

    –Marin Atanasov

    3 de septiembre de 2014 a las 14:24

  • Lo acabo de probar, funciona. Edité mi respuesta anterior para mostrarle el código completo que debe usar. los $image_url contendrá la URL de la imagen de tamaño mediano.

    –Marin Atanasov

    03/09/2014 a las 15:05

  • Sí, lo siento, supongo que usé wp_get_attachment_image_src() la primera vez y era demasiado perezoso para var_dump. Simplemente no devolvió una cadena. Usé wp_get_attachment_url() de mi función anterior las otras veces. Estaba confundido, lo siento. ¡Pero usted está en lo correcto! ¡Funciona muy bien! ¡Muchos gracias! 🙂

    – usuario2718671

    4 sep 2014 a las 7:00

  • @DrunkenMaster no, solo debe asegurarse de estar usando la ID de publicación correcta en lugar de $post_array->ID. En caso de que estés en un bucle, puedes usar get_the_ID() allá.

    –Marin Atanasov

    1 de julio de 2015 a las 10:11

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad