web-dev-qa-db-ger.com

Schließen Sie Parent functions.php in Child Theme functions.php ein

Ich versuche, die übergeordneten Themen functions.php in die untergeordneten Themen functions.php aufzunehmen.

Ich habe ein Standard-Setup für eine functions.php in meinem Elternteil.

Dies ist, was ich in meinen Kinderthemen functions.php habe

<?php
/**
 * Base functions and definitions.
 *
 * @link https://developer.wordpress.org/themes/basics/theme-functions/
 *
 * @package Base
 */

locate_template( array( '/vendor/autoload.php', '/functions.php' ), true, false );

die Datei autoload.php enthält Dinge wie ein funktionierendes Holz-Framework, das die übergeordnete Datei functions.php anscheinend nicht enthält

Jede Hilfe wäre sehr dankbar.

Vielen Dank, Jake.

1
Henshall

Gemäß den Kommentaren von @ toscho wird das übergeordnete Thema immer nach dem untergeordneten Thema geladen. Auf diese Weise können Sie die Funktion eines übergeordneten Themas überschreiben, und das Original wird ignoriert, während alle Funktionen, die Sie nicht überschrieben haben, geladen und verfügbar sind.

Es ist nicht nötig, es umgekehrt zu machen. Wenn Sie nur zusätzliche Dateien laden und Aktionen und Filter definieren (wie Sie sollten), besteht kein Grund, sich über die Reihenfolge Gedanken zu machen, in der beide Funktionsdateien geladen werden, da an diesem Punkt WP nur eine Bestandsaufnahme durchführt auszuführender Code, der nicht tatsächlich ausgeführt wird.

Das gibt Ihnen also viel Freiheit, zusätzliche Einstellungen im functions.php Ihres Kinderthemas zu definieren, selbst wenn der des Elternteils noch nicht geladen wurde.

1
cjbj

Ich bin nicht ganz sicher, was Sie erreichen möchten, aber es klingt, als würden Sie versuchen, Funktionen aus Ihrem übergeordneten Thema in Ihrem untergeordneten Thema zu überschreiben.

Wenn dies der Fall ist, sollten Sie die übergeordnete Funktion einfügbar machen:

if ( ! function_exists( 'your_function' ) ) {

  function your_function() {
  }

}

Dann können Sie in Ihrem untergeordneten Design eine Funktion mit demselben Namen definieren. In diesem Fall wird die untergeordnete Funktion verwendet, da sie zuerst geladen wird, und die übergeordnete Funktion prüft, ob die Funktion vorhanden ist.

function your_function() {
}
0
Jesse Vlasveld