get_template_directory() vs bloginfo('template_directory') vs TEMPLATEPATH in WordPress
Stavo leggendo questo articolo: Errori Comuni nello Sviluppo WordPress e Come Risolverli, e l'autore afferma:
Per ottenere la posizione del tema: Se stai usando TEMPLATEPATH o bloginfo('template_directory'). Fermati! Dovresti utilizzare il più utile get_template_directory() come mostrato nei miei esempi sopra.
Ma non approfondisce. Cosa c'è di così sbagliato in bloginfo()?
Per farla breve: get_bloginfo( 'template_directory' ) e get_bloginfo( 'template_url' ) restituiscono semplicemente get_template_directory_uri().
Quindi, puoi abbreviare quella seconda chiamata riferendoti direttamente all'ultimo tag del template.
Consulta la fonte per get_bloginfo().
Qualche altro esempio:
'url'=>home_url()'wpurl'=>site_url()'stylesheet_url'=>get_stylesheet_uri()'stylesheet_directory'=>get_stylesheet_directory_uri()'locale'=>get_locale()
Modifica
Nota anche: TEMPLATEPATH e STYLESHEETPATH sono destinati alla deprecazione, quindi è meglio sostituirli ora con get_template_directory() e get_stylesheet_directory(), rispettivamente.
Modifica 2
Riguardo a questo commento
Proprio quello che stavo per dire :). Aggiungerei che
get_template_directory()restituisce il percorso eget_template_directory_uri()l'url. Quindi l'autore non è coerente:get_bloginfo( 'template_directory' )eget_template_directory()restituiscono cose diverse!
Riferimento alla fonte :)
case 'template_directory':
case 'template_url':
$output = get_template_directory_uri();
break;
Riguardo a questo commento:
L'unica avvertenza quando si sviluppano temi figli è che dovrai usare esplicitamente
get_stylesheet_directory(). Correggetemi se sbaglio.
Vero, ma è sempre stato così. get_bloginfo() non restituisce nulla correlato a get_stylesheet_directory(). Restituisce solo get_stylesheet_uri() e get_stylesheet_directory_uri().
L'unica avvertenza quando si sviluppano temi child è che bisogna usare esplicitamente get_stylesheet_directory(). Correggimi se sbaglio.
Steve
Grazie! Mi chiedo solo perché WP abbia così tante di queste funzioni che semplicemente chiamano un'altra funzione, che poi dovremmo evitare di usare...
coopersita