get_template_directory () vs bloginfo ('katalog_dziennika') vs TEMPLATEPATH


16

Czytałem ten artykuł: Typowe błędy programistyczne WordPress i jak je naprawić , a w nim autor mówi:

Uzyskiwanie lokalizacji motywu: jeśli korzystasz z TEMPLATEPATH lub bloginfo („katalog_dzienek”). Zatrzymać! Powinieneś używać bardzo użytecznego get_template_directory (), jak widać w moich przykładach powyżej.

Ale on nie rozwija. Co jest takiego złego bloginfo()?

Odpowiedzi:


17

Krótko mówiąc: get_bloginfo( 'template_directory' )i get_bloginfo( 'template_url' )po prostu wróć get_template_directory_uri().

Możesz więc skrócić to drugie połączenie, odwołując się bezpośrednio do drugiego znacznika szablonu.

Patrz źródło dlaget_bloginfo() .

Kilka innych:

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

Edytować

Należy również zwrócić uwagę: TEMPLATEPATHi STYLESHEETPATHsą skazane na amortyzację , dzięki czemu są lepiej po prostu zastępując je teraz, ze get_template_directory()i get_stylesheet_directory(), odpowiednio.

Edytuj 2

Odp: ten komentarz

Właśnie to miałem powiedzieć :). Dodałbym, że get_template_directory()zwraca ścieżkę i get_template_directory_uri()adres URL. Więc autor nie jest konsekwentny: get_bloginfo( 'template_directory' )i get_template_directory()zwraca różne rzeczy!

Wróć do źródła :)

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

Odp: ten komentarz:

Jedyne zastrzeżenie przy opracowywaniu motywów potomnych, którego musisz użyć get_stylesheet_directory()jawnie. Niech ktoś mnie poprawi, jeśli się mylę.

To prawda, ale zawsze tak było. get_bloginfo()nie zwraca niczego związanego z get_stylesheet_directory(). Zwraca tylko get_stylesheet_uri()i get_stylesheet_directory_uri().


Jedynym zastrzeżeniem przy tworzeniu motywów potomnych jest jawne użycie get_stylesheet_directory (). Niech ktoś mnie poprawi, jeśli się mylę.
Steve,

Dzięki! Zastanawiam się tylko, dlaczego WP ma tak wiele z tych funkcji, które wywołują inną funkcję, że nie powinniśmy wtedy używać ...
coopersita,

W tym przypadku myślę, że powodem jest po prostu zachowanie wstecznej zgodności z get_bloginfo()parametrami.
Chip Bennett
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.