Как использовать get_template_directory_uri() для загрузки изображения из подпапки темы?
Как мне вставить изображение, которое находится в подпапке директории моей темы?
У меня следующая ситуация: В директории моей пользовательской темы есть следующая папка, содержащая изображение jpg
: /assets/img/flexslider/flex-1.jpg
Сейчас в моем файле header.php
есть что-то вроде этого:
<li>
<img src="assets/img/flexslider/flex-1.jpg">
<div class="flex-caption">
<p class="flex-caption-text">
<span>Lorem ipsum</span><br>
<span>sit dolor</span><br>
<span>adipiscing elitur</span>
</p>
</div>
</li>
Очевидно, когда я загружаю страницу, изображение flex-1.jpg
не загружается, потому что указан неверный путь (фактически, используя FireBug, я вижу, что он пытается загрузить изображение assets/img/flexslider/flex-1.jpg
), поэтому я думаю, что мог бы использовать абсолютный путь, но это довольно ужасно!
Поэтому я думаю использовать функцию get_template_directory_uri()
, предоставляемую WordPress, и попробовал изменить предыдущий код следующим образом:
<li>
<img src=<?php get_template_directory_uri().'/assets/img/flexslider/flex-1.jpg' ?>>
<div class="flex-caption">
<p class="flex-caption-text">
<span>Lorem ipsum</span><br>
<span>sit dolor</span><br>
<span>adipiscing elitur</span>
</p>
</div>
</li>
Но это не работает, и используя FireBug, я вижу, что ничего не загружается, фактически в исходном коде моего браузера я вижу:
<img src="">
Что я упускаю?

Вам следует использовать echo, а также вы неправильно закрываете PHP-тег. Посмотрите исходный код вывода, чтобы понять, как это сделать правильно.
<img src="<?php echo get_template_directory_uri()."/assets/img/flexslider/flex-1.jpg"?>" alt="alternative_name">
Или вы можете использовать bloginfo, что проще запомнить и использовать (не требуется echo)
<img src="<?php bloginfo('template_url'); ?>/assets/img/flexslider/flex-1.jpg"/>

Более динамичный способ — добавить эту строку в ваш файл functions.php
add_theme_support( 'custom-logo' );
Для отображения изображения используйте
$custom_logo_id = get_theme_mod( 'custom_logo' );
$image = wp_get_attachment_image_src( $custom_logo_id , 'full' );
echo '<img src=$image[0] height="100px" />';
