bloginfo('template_directory') и атрибут src для изображений

24 апр. 2013 г., 17:46:26
Просмотры: 28.7K
Голосов: 1

Я использую ленивую загрузку изображений с URL-адресами, которые добавляются через произвольные поля.

Плагин ленивой загрузки, который я использую, требует изображение-заглушку в атрибуте src и фактическое изображение в data-original.

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

Мне также нужны высота и ширина изображения, поэтому я использую wp_get_attachment_image_src().

Моя проблема заключается в использовании bloginfo('template_directory') для получения изображения-заглушки.

Первое изображение здесь не показывает изображения-заглушки, но выводит URL на страницу.

    <?php   
        // Получаем ID вложения из URL для первого изображения
        $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'); 

        // Получаем ID вложения из URL для второго изображения
        $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');

        // Получаем ID вложения из URL для третьего изображения
        $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].'">';

    ?>

Исходный код страницы выглядит так:

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

Почему я не могу использовать bloginfo('template_directory') здесь?

Как правильно выводить изображения?

0
Все ответы на вопрос 3
0

Вы не можете использовать bloginfo() при выводе с помощью echo, потому что сама функция bloginfo также выводит строку с использованием echo. Ниже приведен рабочий вариант, также я убрал лишние двойные кавычки...

<?php   

        // Получаем ID вложений из URL картинок
        $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 апр. 2013 г. 18:00:57
0

Это должно работать

$so97086_template_directory = get_bloginfo('template_directory');

И замените

bloginfo('template_directory') на $so97086_template_directory;
24 апр. 2013 г. 17:53:20
0

Обратите внимание, что использование get_template_directory_uri() предпочтительнее, чем get_bloginfo('template_directory').

Для получения дополнительной информации обратитесь к этой статье: get_template_directory() vs bloginfo( 'template_directory' ) vs TEMPLATEPATH

24 апр. 2013 г. 18:18:40