¿Cómo mostrar una imagen destacada (solo URL de imagen) como src de la imagen?

27 feb 2012, 07:05:25
Vistas: 27.3K
Votos: 1

Tengo el siguiente código:

if (themedy_get_option('product_gallery')) { add_action('genesis_post_content', 'themedy_product_images', 1); }
function themedy_product_images() { ?>
    <?php 
    global $post;
    // Obtener imágenes hijas
    $images = get_children( array( 'post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image', 'numberposts' => 999, 'order'=> 'ASC', 'orderby' => 'menu_order' ) ); 
    if ( $images ) { ?>
<div class="twocol-one">
<?php echo get_the_post_thumbnail( $post->ID, 'product-400x600' ); ?>
    <div class="product_images">
        <div class="container">
            <?php
            foreach ( $images as $image ){
                $gallery_image_info = wp_get_attachment_image_src( $image->ID, 'full' );
                $gallery_image = $gallery_image_info[0];

                $gallery_thumb_info = wp_get_attachment_image_src( $image->ID, 'Gallery Thumb' );
                $gallery_thumb = $gallery_thumb_info[0];

                $gallery_image_alt = get_post_meta($image->ID, '_wp_attachment_image_alt', true) ? trim(strip_tags( get_post_meta($image->ID, '_wp_attachment_image_alt', true) )) : trim(strip_tags( $image->post_title ));

                echo '<a href="'.$gallery_image.'" title="'.$gallery_image_alt.'" class="fancybox" rel="single-gallery"><img src="' . $gallery_thumb . '" /></a>';
            }
            ?>
        </div>
    </div>
</div>

Problema #1: Donde dice:

<?php echo get_the_post_thumbnail( $post->ID, 'product-400x600' ); ?>

Necesito que diga

<a id="product" class="MagicZoomPlus" href=" <?php echo get_the_post_thumbnail( $post->ID, 'large' ); ?> " rel="selectors-class: Active"><img src=" <?php echo get_the_post_thumbnail( $post->ID, 'product-400x600' ); ?> " alt="" /></a>`

Donde se muestran las imágenes (large y product-400x600), necesito que solo muestre la URL de la imagen, sin todo el HTML adicional. ¿Cómo puedo arreglar mi código anterior para que se muestre como necesito?

Problema #2: Donde dice:

echo '<a href="'.$gallery_image.'" title="'.$gallery_image_alt.'" class="fancybox" rel="single-gallery"><img src="' . $gallery_thumb . '" /></a>';

Es un bucle de todas las otras imágenes en esa galería. Para cada imagen en el bucle.. Necesito que diga

<a class="Selector" href="<?php echo get_the_post_thumbnail( $post->ID, 'large' ); ?>" rel="zoom-id:product" rev="<?php echo get_the_post_thumbnail( $post->ID, 'medium' ); ?>"><img src="' . $gallery_thumb . '" alt="" /></a>

De nuevo, el mismo problema que #1 donde necesito que solo muestre la URL/src de la imagen.

La forma en que debería funcionar es como en este ejemplo: http://www.magictoolbox.com/magiczoomplus/

¡Gracias de antemano!

Edición

Mi primer intento según la sugerencia de Brian para la imagen destacada, ¡funciona!

<?php
    $image = wp_get_attachment_image_src(get_post_thumbnail_id(), 'full');
    $image2 = wp_get_attachment_image_src(get_post_thumbnail_id(), 'product-400x600');
?>
<?php echo '<a id="product" class="MagicZoomPlus" href="'.$image[0].'" rel="selectors-class: Active"><img src="'.$image2[0].'" alt="" /></a>'; ?>

Ahora la pregunta es, ¿cómo hago esto para los elementos de la galería de imágenes?

0
Todas las respuestas a la pregunta 1
6

Aquí están las funciones que necesitas conocer:

Ejemplo sin tamaño:

echo wp_get_attachment_url(get_post_thumbnail_id());

Ejemplo con tamaño:

$image = wp_get_attachment_image_src(get_post_thumbnail_id(), 'large');
echo $image[0]; //como HREF en tu etiqueta A

Puedes obtener todas las imágenes de la galería de la siguiente manera:

$args = array(
    'order'=> 'ASC',
    'post_mime_type' => 'image',
    'post_parent' => $post->ID,
    'post_type' => 'attachment'
);

$attachments = get_children( $args );

foreach($attachments as $attachment){
    //usa $attachment->ID para obtener información del adjunto
    $image = wp_get_attachment_image_src($attachment->ID, 'large');
}
27 feb 2012 07:20:11
Comentarios

Gracias por la referencia. Entonces, ¿cómo encaja eso en el bucle? Es decir, ¿cómo sé qué ID de miniatura corresponde a la versión grande, mediana y pequeña de cada imagen?

iCeR iCeR
27 feb 2012 07:26:00

¡Gracias por la actualización sobre la referencia a get_attachment_image_src! Eso es perfecto para la imagen destacada, pero ¿cómo lo hago para el bucle de imágenes en miniatura de la galería? Lamento no entender el concepto más fácilmente, estoy intentando asimilarlo.

iCeR iCeR
27 feb 2012 07:29:37

Revisa la última edición y comprueba si eso ayuda.

Brian Fegter Brian Fegter
27 feb 2012 07:43:38

Mira mi intento al final de mi pregunta... más difícil de lo que pensé al principio...

iCeR iCeR
27 feb 2012 08:50:56

Vale, lo resolví leyendo tu sugerencia con más atención :) El código está en mi pregunta - ¿quizás puedas sugerir cómo optimizarlo mejor? Ahora solo estoy luchando con las imágenes de la galería...

iCeR iCeR
27 feb 2012 10:19:08

@kaiser :) jaja

Brian Fegter Brian Fegter
27 feb 2012 14:23:37
Mostrar los 1 comentarios restantes