bloginfo('template_directory') nell'attributo src dell'immagine

24 apr 2013, 17:46:26
Visualizzazioni: 28.7K
Voti: 1

Sto utilizzando il lazy loading per alcune immagini con URL aggiunti tramite campi personalizzati.

Il plugin di lazy loading che sto utilizzando richiede un'immagine segnaposto nell'attributo src e l'immagine effettiva in data-original.

http://www.appelsiini.net/projects/lazyload

Ho bisogno anche dell'altezza e della larghezza dell'immagine, quindi ho utilizzato wp_get_attachment_image_src().

Il mio problema è l'utilizzo di bloginfo('template_directory') per ottenere l'immagine segnaposto.

La prima immagine qui non mostra le immagini segnaposto ma visualizza l'url nella pagina.

    <?php   
        // Ottiene l'ID dell'allegato dalla prima immagine
        $attch_id_1 = pn_get_attachment_id_from_url(get_post_meta($post->ID, 'img1', true));
        $image_attributes_1 = wp_get_attachment_image_src( $attch_id_1, 'full'); 

        // Ottiene l'ID dell'allegato dalla seconda immagine
        $attch_id_2 = pn_get_attachment_id_from_url(get_post_meta($post->ID, 'img2', true));
        $image_attributes_2 = wp_get_attachment_image_src( $attch_id_2, 'full');

        // Ottiene l'ID dell'allegato dalla terza immagine
        $attch_id_3 = pn_get_attachment_id_from_url(get_post_meta($post->ID, 'img3', true));
        $image_attributes_3 = wp_get_attachment_image_src( $attch_id_3, 'full');

        echo '<img src="'.bloginfo('template_directory').'"/images/img-BG.png" data-original="'.$image_attributes_1[0].'">';

        echo '<img src="http://localhost/wordpress-cd/wp-content/themes/cd/images/img-BG.png" data-original="'.$image_attributes_2[0].'">';

        echo '<img src="http://localhost/wordpress-cd/wp-content/themes/cd/images/img-BG.png" data-original="'.$image_attributes_3[0].'">';

    ?>

Il sorgente della pagina appare così:

http://localhost/wordpress-cd/wp-content/themes/cd<img src="/images/img-BG.png"

Perché non posso usare bloginfo('template_directory') qui?

Come posso visualizzare correttamente le immagini?

0
Tutte le risposte alla domanda 3
0

Non puoi utilizzare bloginfo() mentre stai effettuando l'output con echo perché bloginfo stesso emette la stringa utilizzando echo. Di seguito troverai la soluzione funzionante, ho anche rimosso i doppi apici in eccesso...

<?php   

        $attch_id_1 = pn_get_attachment_id_from_url(get_post_meta($post->ID, 'img1', true));
        $image_attributes_1 = wp_get_attachment_image_src( $attch_id_1, 'full'); 

        $attch_id_2 = pn_get_attachment_id_from_url(get_post_meta($post->ID, 'img2', true));
        $image_attributes_2 = wp_get_attachment_image_src( $attch_id_2, 'full');

        $attch_id_3 = pn_get_attachment_id_from_url(get_post_meta($post->ID, 'img3', true));
        $image_attributes_3 = wp_get_attachment_image_src( $attch_id_3, 'full');

        echo '<img src="'.get_bloginfo('template_directory').'/images/img-BG.png" data-original="'.$image_attributes_1[0].'">';

        echo '<img src="http://localhost/wordpress-cd/wp-content/themes/cd/images/img-BG.png" data-original="'.$image_attributes_2[0].'">';

        echo '<img src="http://localhost/wordpress-cd/wp-content/themes/cd/images/img-BG.png" data-original="'.$image_attributes_3[0].'">';

    ?>
24 apr 2013 18:00:57
0

Questo dovrebbe funzionare

$so97086_template_directory = get_bloginfo('template_directory');

E sostituisci

bloginfo('template_directory') con $so97086_template_directory;
24 apr 2013 17:53:20
0

Si prega di notare che get_template_directory_uri() è preferibile rispetto a get_bloginfo('template_directory').

Per maggiori informazioni, fare riferimento a questo link: get_template_directory() vs bloginfo( 'template_directory' ) vs TEMPLATEPATH

24 apr 2013 18:18:40