Frage

Ich bin gespannt, ob andere PHP -Codedateien neben functions.php, WP -Vorlagendateien und style.css in einem untergeordneten Thema dieselbe Datei in einem übergeordneten sie tatsächlich überschreiben?

Ich arbeite mit einem Kunden zusammen, der ein Thema mit Unterstützung bei Kindern hat. Es gibt jedoch keine Haken oder Aktionen für die Funktionen, die ich überschreiben möchte. Suchen Sie nach einer sauberen Möglichkeit, diesen Override -Codes -Code durchzuführen, der beim Upgrade nicht überschrieben wird.

War es hilfreich?

Lösung

Es hängt ganz von a) ab, welche Funktionen und Vorlagendateien Sie sprechen, und b) wie diese Funktionen definiert werden, oder Vorlagendateien im übergeordneten Thema aufgerufen werden.

Wenn das übergeordnete Thema verwendet get_template_part(), Dann bist du golden. Wenn das übergeordnete Thema verwendet get_stylesheet_directory_uri() oder STYLESHEETPATH, Dann können Sie mit Vorbehalten überschreiben. Wenn das übergeordnete Thema verwendet get_template_directory_uri() oder TEMPLATEPATH, Dann werden Sie eine schwierige Zeit haben.

Mit Funktionen, wenn das übergeordnete Thema die Funktionen in a einbackt function_exists() Bedingt können Sie solche Funktionen einfach überschreiben, indem Sie sie im Kinderthema deklarieren. Mit Haken können Sie einfach remove_action oder remove_filter.

Andere Tipps

Normalerweise sind alle Dateien "überschreiben" -able (Aber nicht die Datei functions.php). Regel lautet: Zuerst lädt Kinderlasten, dann das übergeordnete Thema.

Wenn Sie eine Funktion in der Datei functions.php überschreiben möchten, sollte sie in eingewickelt werden

if ( ! function_exists('some_function_name') ) { 
    function some_function_name() { /* do stuff */ }
}

Sonst ist es nicht möglich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top