¿Cómo usar get_template_directory_uri() para cargar una imagen que está en una subcarpeta de mi tema?
¿Cómo puedo insertar una imagen que está en una subcarpeta dentro del directorio de mi tema?
Tengo la siguiente situación: En el directorio de mi tema personalizado tengo la siguiente carpeta que contiene una imagen jpg
: /assets/img/flexslider/flex-1.jpg
Ahora en mi archivo header.php
, tengo algo como esto:
<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>
Obviamente, cuando cargo la página, la imagen flex-1.jpg
no se carga porque no tiene la ruta correcta (de hecho, usando FireBug obtengo que intenta cargar la imagen assets/img/flexslider/flex-1.jpg
) ¡así que podría usar la ruta absoluta pero esto es bastante horrible!
Entonces estoy pensando en usar la función get_template_directory_uri()
proporcionada por WordPress para hacer esto y he intentado cambiar el código anterior de esta manera:
<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>
Pero no está funcionando y usando FireBug puedo ver que no está cargando nada, de hecho en el código fuente de mi navegador tengo:
<img src="">
¿Qué me estoy perdiendo?

Deberías hacer un echo y además estás cerrando incorrectamente tu etiqueta php. Mira el código fuente generado para tener una idea
<img src="<?php echo get_template_directory_uri()."/assets/img/flexslider/flex-1.jpg"?>" alt="nombre_alternativo">
o puedes usar bloginfo que es más fácil de recordar y usar (No necesitas hacer echo)
<img src="<?php bloginfo('template_url'); ?>/assets/img/flexslider/flex-1.jpg"/>

Una forma más dinámica es agregar esta línea en tu archivo functions.php
add_theme_support( 'custom-logo' );
Para mostrar la imagen usa
$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" />';
