Gibt es einen Vorteil bei der Verwendung von get_header () gegenüber include ('header.php')?

11

Das Grundthema - tatsächlich jedes Thema, das ich mir angesehen habe - verwendet get_header (), um die Header-Datei einzuschließen, aber ich sehe keinen Grund dafür.

Was sind die Vorteile der Verwendung get_header()anstelle einer einfachen include('file.php')?

Wille
quelle
3
Ich weiß, dass dies include('some-file.php');kein Thema ist, aber ich sehe es zu oft - es besteht keine Notwendigkeit für Klammern, es ist ein Sprachkonstrukt! include 'some-file.php';macht den Job ganz gut, und IMO sieht auch ordentlicher aus;)
TheDeadMedic

Antworten:

18

Die Verwendung einer generischen Funktion bedeutet, dass die Ebene der WP-API verworfen wird:

  • get_header Haken wäre weg;
  • Die Kompatibilität mit dem Abrufen verschiedener Header nach Name ( "header-{$name}.php") wäre weg.
  • Die Verwendung von locate_template()wäre weg, was wahrscheinlich die Kompatibilität mit untergeordneten Themen zerstören würde.

Sie können jederzeit auf die Quelle schauen, um zu sehen, was genau die Funktion bewirkt.

WordPress nutzt seine eigene Funktion nicht nur, weil. Dies geschieht normalerweise aus konkreten Gründen der Kompatibilität oder Funktionalität.

Selten
quelle
Ich habe alternative Header mit einer PHP-Include-Anweisung anstelle von aufgerufen get_headerund dies erklärt, warum ich ein seltsames Verhalten bekommen habe.
Matt
2

Sie können auch die Funktion get_header () verwenden, um eine andere Header-Datei abzurufen. Benennen Sie die benutzerdefinierte Header-Datei header-Whatever.php und verwenden Sie sie

get_header('whatever');

und WP verwendet die Datei header-Whatever.php anstelle von header.php.

Beachten Sie, dass die Syntax wackelig ist - Sie würden denken, Sie sollten stattdessen den Dateinamen dort einfügen, aber nein - Sie benötigen den Namen nur nach dem Bindestrich. Ich möchte diese Stunde meines Lebens jetzt zurück :(

Dains
quelle
ohh thx! verdammter Bindestrich. Vielleicht wird es Ihren Tag leichter machen, wenn Sie wissen, dass Sie jemandem ein paar Stunden gespart haben? :)
0

Der Hauptgrund ist, dass Sie sich in get_header einbinden können. Dies bedeutet, dass Sie Header-y-Inhalte in einem untergeordneten Design oder einer separaten Funktionsdatei ausführen können, ohne die übergeordneten Designdateien bearbeiten zu müssen.

Sie möchten übergeordnete Themendateien nicht bearbeiten, da dies die Aktualisierung erschwert, da Sie Ihre Änderungen dann erneut anwenden müssen. Wenn diese Änderungen in einem untergeordneten Thema isoliert sind, wird das Upgrade VIEL einfacher

anu
quelle