Qual è il modo migliore per includere immagini dalla cartella immagini del template?
Qual è il modo migliore per includere immagini dalla cartella immagini del template? È meglio usare get_bloginfo('template_url')
? Ho capito che potrebbe essere preferibile hardcodare il percorso alla cartella immagini per evitare chiamate di funzione in PHP..
Quali sono i vostri pensieri?
Ho capito che è meglio hardcodare il percorso alla cartella delle immagini in questo modo si risparmiano chiamate a funzioni in PHP..
Personalmente non mi preoccuperei delle chiamate a funzione, la cache degli oggetti di WordPress gestirà il caching di tutto quel codice. Potresti definire il percorso come una costante se volessi, ma generalmente non ne varrebbe la pena.
Farei semplicemente:
<img src="<?php bloginfo('stylesheet_directory')"?>/images/image.png" />
L'ho modificato in
<img src="<?php bloginfo('stylesheet_directory');?>/images/image.png" />
(quello sopra dava errori)

Il modo più semplice e diretto per farlo è definire una variabile unica nel file functions.php
del tuo tema.
Ad esempio:
<?php
$theme_name_images = get_bloginfo('stylesheet_directory') . '/images/';
?>
Non è necessario utilizzare classi come suggerito in una risposta precedente.
EDIT: Dovrebbe essere get_bloginfo, invece di bloginfo(), come giustamente segnalato da Viper007Bond.

vero, ma è il metodo più semplice. Non ho mai detto che fosse il modo più pulito per farlo.

Sì, ma il problema dello sporcare il namespace globale si presenta solo se non si usa una buona convenzione di denominazione per le variabili. Ad esempio, potrebbe usare amits_stylesheet_directory e amits_template_url oppure, invece di "amits", usare il nome del cliente.

bloginfo()
visualizza direttamente. Vuoi get_bloginfo()
che restituisce il valore.

@Amit: Dipende. La maggior parte delle chiamate di funzione in PHP sono piuttosto veloci, quindi se stai cercando prestazioni non mi preoccuperei troppo. Tuttavia capisco come ti senti nel vedere tutte quelle chiamate. Ciononostante, non vorrei mai hardcodare i percorsi.
Se hai intenzione di usare get_bloginfo('template_url')
molte volte nel tuo tema, perché non assegnarlo a una variabile globale nel tuo file functions.php
e poi farvi riferimento ovunque avresti normalmente usato la chiamata alla funzione? Assicurati di darle un nome improbabile che possa creare conflitti, come amits_template_url
. Quindi fai questo in functions.php
:
global $amits_template_url;
$amits_template_url = get_bloginfo('template_url');
E poi nel tuo tema farai riferimento a questa variabile ovunque avresti usato get_bloginfo('template_url')
.

Beh, dipende dal tipo di sviluppo che stai facendo. Se stai sviluppando un plugin, devi utilizzare le funzioni perché non potrai mai sapere con certezza quale sarà la struttura degli URL. Se stai lavorando su un sito web specifico, tecnicamente è accettabile hardcodare gli URL, ma è comunque sconsigliato, poiché impedisce la possibilità che la struttura degli URL possa cambiare in futuro.
Ogni volta che sviluppo plugin o temi, strutturo il programma in una classe; in questo modo, posso salvare valori ripetitivi come proprietà dell'oggetto (ad esempio, l'URL di WordPress e template_url). Così posso utilizzarli rapidamente senza dover chiamare ripetutamente le funzioni.
