Afișarea unei imagini reprezentative (doar URL-ul imaginii) ca sursă img?

27 feb. 2012, 07:05:25
Vizualizări: 27.3K
Voturi: 1

Am următorul cod:

if (themedy_get_option('product_gallery')) { add_action('genesis_post_content', 'themedy_product_images', 1); }
function themedy_product_images() { ?>
    <?php 
    global $post;
    $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: Unde spune:

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

Trebuie să spună

<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>`

Unde se afișează imaginile (large și product-400x600), am nevoie doar de URL-ul imaginii, fără celelalte elemente HTML care vin împreună cu acesta. Cum pot modifica codul de mai sus pentru a-l avea afișat așa cum am nevoie?

Problema #2: Unde spune:

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

Este o buclă pentru toate celelalte imagini din galerie. Pentru fiecare imagine din buclă.. Trebuie să spună

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

Din nou, aceeași problemă ca la #1 unde am nevoie să afișez doar URL-ul/src-ul imaginii.

Modul în care ar trebui să funcționeze este ca în acest exemplu: http://www.magictoolbox.com/magiczoomplus/

Mulțumesc anticipat!

Editare

Prima mea încercare conform sugestiei lui Brian de mai jos pentru imaginea reprezentativă, funcționează!

<?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>'; ?>

Acum întrebarea este, cum procedez pentru elementele din galeria de imagini?

0
Toate răspunsurile la întrebare 1
6

Iată funcțiile pe care trebuie să le cunoașteți:

Exemplu fără dimensiune:

echo wp_get_attachment_url(get_post_thumbnail_id());

Exemplu cu dimensiune:

$image = wp_get_attachment_image_src(get_post_thumbnail_id(), 'large');
echo $image[0]; //ca HREF în tag-ul A

Puteți obține toate imaginile din galerie astfel:

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

$attachments = get_children( $args );

foreach($attachments as $attachment){
    //folosiți $attachment->ID pentru a prelua informațiile despre atașament
    $image = wp_get_attachment_image_src($attachment->ID, 'large');
}
27 feb. 2012 07:20:11
Comentarii

Mulțumesc pentru referință. Deci, cum se integrează asta în buclă? Adică, cum pot ști care ID de thumbnail este pentru versiunea mare, medie și mică a fiecărei imagini?

iCeR iCeR
27 feb. 2012 07:26:00

Mulțumesc pentru actualizarea referitoare la get_attachment_image_src! Este perfect pentru imaginea reprezentativă, dar cum fac asta pentru bucla de imagini miniaturi din galerie? Îmi pare rău că nu înțeleg conceptul mai ușor - încerc să-l înțeleg.

iCeR iCeR
27 feb. 2012 07:29:37

Verifică ultima editare și vezi dacă te ajută.

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

Vezi încercarea mea la finalul întrebării mele.. mai greu decât credeam la început..

iCeR iCeR
27 feb. 2012 08:50:56

Ok, am înțeles asta citind mai atent sugestia ta :) Codul este în întrebarea mea - poate poți sugera o optimizare mai bună? Acum mă chinui cu imaginile din galeria de imagini..

iCeR iCeR
27 feb. 2012 10:19:08

@kaiser :) haha

Brian Fegter Brian Fegter
27 feb. 2012 14:23:37
Arată celelalte 1 comentarii