get_template_directory() vs bloginfo('template_directory') vs TEMPLATEPATH in WordPress

15 nov 2012, 19:33:08
Visualizzazioni: 29.5K
Voti: 16

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()?

0
Tutte le risposte alla domanda 1
3
18

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 e get_template_directory_uri() l'url. Quindi l'autore non è coerente: get_bloginfo( 'template_directory' ) e get_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().

15 nov 2012 19:42:36
Commenti

L'unica avvertenza quando si sviluppano temi child è che bisogna usare esplicitamente get_stylesheet_directory(). Correggimi se sbaglio.

Steve Steve
15 nov 2012 19:47:20

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 coopersita
15 nov 2012 21:07:12

In questo caso, penso che il motivo sia semplicemente mantenere la retrocompatibilità con i parametri di get_bloginfo().

Chip Bennett Chip Bennett
15 nov 2012 21:20:29