Come usare get_template_directory_uri() per caricare un'immagine che si trova in una sotto-cartella del tema?
Come posso inserire un'immagine che si trova in una sotto-cartella nella directory del mio tema?
Ho la seguente situazione: Nella directory del mio tema personalizzato ho la seguente cartella che contiene un'immagine jpg
: /assets/img/flexslider/flex-1.jpg
Ora nel mio file header.php
, ho qualcosa del genere:
<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>
Ovviamente, quando carico la pagina, l'immagine flex-1.jpg
non viene caricata perché non c'è il percorso corretto (infatti usando FireBug ottengo che tenta di caricare l'immagine assets/img/flexslider/flex-1.jpg
) quindi penso che potrei usare il percorso assoluto ma questo è piuttosto brutto!
Quindi sto pensando di utilizzare la funzione get_template_directory_uri()
fornita da WordPress per fare questo e ho provato a modificare il codice precedente in questo modo:
<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>
Ma non funziona e usando FireBug posso vedere che non sta caricando nulla, infatti nel codice sorgente del mio browser ho:
<img src="">
Cosa mi sta sfuggendo?

Dovresti utilizzare echo e stai anche chiudendo il tag PHP in modo improprio. Visualizza il sorgente dell'output generato per avere un'idea
<img src="<?php echo get_template_directory_uri()."/assets/img/flexslider/flex-1.jpg"; ?>" alt="nome_alternativo">
oppure puoi usare bloginfo che è più facile da ricordare e usare (Non devi usare echo)
<img src="<?php bloginfo('template_url'); ?>/assets/img/flexslider/flex-1.jpg"/>

Un modo più dinamico è aggiungere questa riga nel tuo file functions.php
add_theme_support( 'custom-logo' );
Per visualizzare l'immagine 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" />';
