webentwicklung-frage-antwort-db.com.de

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

Ich las diesen Artikel: Häufige Fehler bei der WordPress-Entwicklung und wie man sie behebt und darin sagt der Autor:

Abrufen des Speicherorts des Themas: Wenn Sie TEMPLATEPATH oder bloginfo ('template_directory') verwenden. Hör auf! Sie sollten das sehr nützliche get_template_directory () verwenden, wie in meinen obigen Beispielen gezeigt.

Aber er geht nicht weiter darauf ein. Was ist so schlimm an bloginfo()?

15
coopersita

Um es kurz zu machen: get_bloginfo( 'template_directory' ) und get_bloginfo( 'template_url' ) geben einfach get_template_directory_uri() zurück.

Sie können diesen zweiten Aufruf also abkürzen, indem Sie direkt auf das letztgenannte Template-Tag verweisen.

Beziehen Sie sich auf die Quelle für get_bloginfo() .

Ein paar andere:

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

Bearbeiten

Beachten Sie auch: TEMPLATEPATH und STYLESHEETPATH sind für die Veraltetheit vorgesehen , daher sollten Sie sie jetzt einfach durch get_template_directory() bzw. get_stylesheet_directory() ersetzen.

Bearbeiten 2

Betreff: dieser Kommentar

Genau das, was ich gerade sagen wollte :). Ich würde hinzufügen, dass get_template_directory() den Pfad und get_template_directory_uri() die URL zurückgibt. Der Autor ist also nicht konsistent: get_bloginfo( 'template_directory' ) und get_template_directory() geben verschiedene Dinge zurück!

Siehe zurück zur Quelle :)

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

Betreff: dieser Kommentar:

Die einzige Einschränkung beim Entwickeln von untergeordneten Themen, die Sie explizit mit get_stylesheet_directory() verwenden müssen. Jemand korrigiert mich, wenn ich falsch liege.

Stimmt, aber das war schon immer so. get_bloginfo() gibt nichts im Zusammenhang mit get_stylesheet_directory() nicht zurück. Es werden nur get_stylesheet_uri() und get_stylesheet_directory_uri() zurückgegeben.

16
Chip Bennett