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

15 nov. 2012, 19:33:08
Vizualizări: 29.5K
Voturi: 16

Citeam acest articol: Greșeli Comune în Dezvoltarea WordPress și Cum să le Rezolvi, și în el, autorul spune:

Pentru obținerea locației temei: Dacă folosești TEMPLATEPATH sau bloginfo( 'template_directory'). Oprește-te! Ar trebui să folosești utilul get_template_directory() așa cum se vede în exemplele mele de mai sus.

Dar nu elaborează. Ce este atât de greșit la bloginfo()?

0
Toate răspunsurile la întrebare 1
3
18

Pe scurt: get_bloginfo( 'template_directory' ) și get_bloginfo( 'template_url' ) returnează pur și simplu get_template_directory_uri().

Deci, puteți scurta acel al doilea apel referindu-vă direct la ultima funcție.

Consultați sursa pentru get_bloginfo().

Câteva altele:

  • 'url' => home_url()
  • 'wpurl' => site_url()
  • 'stylesheet_url' => get_stylesheet_uri()
  • 'stylesheet_directory' => get_stylesheet_directory_uri()
  • 'locale' => get_locale()

Editare

De asemenea, rețineți: TEMPLATEPATH și STYLESHEETPATH sunt marcate pentru depreciere, așa că este mai bine să le înlocuiți acum cu get_template_directory() și get_stylesheet_directory(), respectiv.

Editare 2

Referitor la acest comentariu:

Exact ce voiam să spun :). Aș adăuga că get_template_directory() returnează calea și get_template_directory_uri() returnează URL-ul. Deci autorul nu este consistent: get_bloginfo( 'template_directory' ) și get_template_directory() returnează lucruri diferite!

Consultați din nou sursa :)

case 'template_directory':
case 'template_url':
    $output = get_template_directory_uri();
    break;

Referitor la acest comentariu:

Singura avertizare când dezvoltați teme pentru copii este că va trebui să folosiți explicit get_stylesheet_directory(). Corectați-mă dacă greșesc.

Adevărat, dar asta a fost întotdeauna cazul. get_bloginfo() nu returnează nimic legat de get_stylesheet_directory(). Returnează doar get_stylesheet_uri() și get_stylesheet_directory_uri().

15 nov. 2012 19:42:36
Comentarii

Singura precauție atunci când dezvolți teme derivate este că va trebui să folosești în mod explicit funcția get_stylesheet_directory(). Corectați-mă dacă greșesc.

Steve Steve
15 nov. 2012 19:47:20

Mulțumesc! Mă întreb doar de ce WP are atât de multe funcții care doar apelează altă funcție, pe care apoi nu ar trebui să le folosim...

coopersita coopersita
15 nov. 2012 21:07:12

În acest caz, cred că motivul este pur și simplu menținerea compatibilității retroactive cu parametrii funcției get_bloginfo().

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