bloginfo('template_directory') pentru sursa imaginii

24 apr. 2013, 17:46:26
Vizualizări: 28.7K
Voturi: 1

Încarc leneș (lazy loading) niște imagini cu URL-uri care sunt adăugate prin câmpuri personalizate.

Plugin-ul de lazy load pe care îl folosesc necesită o imagine placeholder în atributul src și imaginea efectivă în data-original.

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

Am nevoie și de înălțimea și lățimea imaginii, așa că am folosit wp_get_attachment_image_src().

Problema mea este folosirea bloginfo('template_directory') pentru a obține imaginea placeholder.

Prima imagine nu afișează imaginile placeholder dar afișează url-ul în pagină.

<?php   
        // Obține ID-ul atașamentului pentru prima imagine
        $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'); 

        // Obține ID-ul atașamentului pentru a doua imagine
        $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');

        // Obține ID-ul atașamentului pentru a treia imagine
        $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].'">';
?>

Sursa pentru pagină arată astfel:

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

De ce nu pot folosi bloginfo('template_directory') aici?

Cum pot afișa corect imaginile?

0
Toate răspunsurile la întrebare 3
0

Nu poți folosi bloginfo() în timp ce afișezi folosind echo deoarece funcția bloginfo în sine folosește echo pentru a afișa șirul de caractere. Mai jos este soluția care va funcționa pentru tine, am eliminat și ghilimelele duble în plus...

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

Acest lucru ar trebui să funcționeze

$so97086_template_directory = get_bloginfo('template_directory');

Și înlocuiește

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

Vă rugăm să rețineți că funcția get_template_directory_uri() este preferată în loc de get_bloginfo('template_directory').

Pentru mai multe informații, consultați acest link: get_template_directory() vs bloginfo( 'template_directory' ) vs TEMPLATEPATH

24 apr. 2013 18:18:40