Cómo usar bloginfo('template_directory') para src de imágenes

24 abr 2013, 17:46:26
Vistas: 28.7K
Votos: 1

Estoy cargando imágenes de forma diferida (lazy loading) con URLs que se agregan a través de campos personalizados.

El plugin de lazy load que estoy usando requiere una imagen provisional en el atributo src y la imagen real en data-original.

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

Necesito también la altura y el ancho de la imagen, por lo que he estado usando wp_get_attachment_image_src().

Mi problema es usar bloginfo('template_directory') para obtener la imagen provisional.

La primera imagen aquí no muestra las imágenes provisionales pero sí muestra la url en la página.

    <?php   
        // Obtener ID del adjunto y atributos de la imagen 1
        $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'); 

        // Obtener ID del adjunto y atributos de la imagen 2
        $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');

        // Obtener ID del adjunto y atributos de la imagen 3
        $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].'">';

    ?>

El código fuente de la página se ve así.

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

¿Por qué no puedo usar bloginfo('template_directory') aquí?

¿Cómo puedo mostrar las imágenes correctamente?

0
Todas las respuestas a la pregunta 3
0

No puedes usar bloginfo() mientras estás generando salida con echo porque bloginfo en sí mismo también genera cadenas usando echo. Lo siguiente funcionará para ti, también tenías comillas dobles adicionales que he eliminado...

<?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 abr 2013 18:00:57
0

Esto debería funcionar

$so97086_template_directory = get_bloginfo('template_directory');

Y reemplazar

bloginfo('template_directory') with $so97086_template_directory;
24 abr 2013 17:53:20
0

Por favor, ten en cuenta que se prefiere usar get_template_directory_uri() en lugar de get_bloginfo('template_directory').

Para más información, consulta esto: get_template_directory() vs bloginfo( 'template_directory' ) vs TEMPLATEPATH

24 abr 2013 18:18:40