Auto get_header und get_footer für jede Vorlage?

7

Gibt es eine Möglichkeit, get_header()am Anfang und get_footer()am Ende der Vorlage automatisch ausgeführt zu werden ?

Derzeit wiederholt sich mein Code bei diesen Aufrufen zu oft.

Ich habe nach einer Möglichkeit gesucht, dies zu tun, kann sie jedoch in Google nicht finden.

hrsetyono
quelle
2
Aufrufen get_header()und get_footer()direkt ist der geeignete Weg, dies in Ihren Vorlagen zu tun.
Pieter Goosen
1
@PieterGoosen Ich verstehe, wenn das die empfohlene Art ist, denke ich, sollte ich damit leben. Es ist nur so, dass get_header()es nicht sauber erscheint , jede einzelne Vorlagendatei zu haben.
Hrsetyono

Antworten:

11

Betrachtet man wp-includes/template-loader.php… es scheint einen Weg zu geben:

if ( $template = apply_filters( 'template_include', $template ) )
    include( $template );

Sie können sich in diesen Filter einbinden, das Einschließen in eine Rückruffunktion übernehmen und zurückkehren FALSE.

Beispielcode, nicht getestet:

add_filter( 'template_include', function( $template ) {

    get_header();
    include $template;
    get_footer();

    return FALSE;
});
Fuxia
quelle
Du bist der Mann! Dies sollte Standard sein! VIELEN DANK
hrsetyono
@DarcCode: Ich bin damit einverstanden, dass diese Funktionsaufrufe automatischer erfolgen sollten, aber obwohl dies für Sie funktioniert, schränkt es die Flexibilität der einzelnen Vorlagendateien ein - das heißt, es wird unmöglich, zuvor Code get_header()in eine Vorlagendatei einzufügen ist manchmal ganz bequem.
s_ha_dum
Es stimmt, ich lerne immer noch WordPress, also habe ich noch keine komplexe Seite erstellt. Aber in welchem ​​Fall müssen Sie vorher Code eingeben get_header?
Hrsetyono
1
Ich hatte vor dem Header nicht viele Anwendungsfälle für Inhalte gesehen , diese Funktionen akzeptieren jedoch das Argument für den Namen der Kopf- / Fußzeile zum Laden verschiedener Header, was bei komplexeren Sites sehr erforderlich sein kann.
Rarst
@Rarst, das ist ein guter Punkt zu erwähnen ... Das aktuelle Beispiel ist in seiner Flexibilität eingeschränkt. Sie können es weiter erweitern und Ihren eigenen Filter hinzufügen, um optional die Kopf- ($ params) / Fußzeile ($ params) zu übergeben.
Adam
3

@scribu schlägt eine Methode zur Reduzierung der Code-Wiederholung in WordPress-Vorlagen vor, die er als Theme-Wrapper bezeichnet und die das erreicht, wonach Sie suchen. Das Roots-Thema verwendet eine leicht modifizierte Version dieser Methode .

Emzo
quelle
3
Eine Zusammenfassung der Methode wäre schön, in die Antwort aufzunehmen. Links sterben.
Rarst