Overinging functions.php mit Kind-Thema

Ich habe nach einer geeigneten Lösung gesucht, um functionen und Hooks in der functions.php meines übergeordneten Themes zu überschreiben. Mein übergeordnetes Thema hat:

define('TS_INC', TEMPLATEPATH .'/inc'); require_once( TS_INC .'/file1.php'); require_once( TS_INC .'/file2.php'); 

Ich möchte in meinem Kindthema einen / inc Ordner mit file2.php nach meinen Bedürfnissen geändert haben. Dies bedeutet, dass ich jeden Aufruf von file1.php erreichen möchte, um den übergeordneten theme / inc-Ordner zu erreichen, und Aufrufe von file2.php, um zu meinem child / inc-Ordner zu gehen.

Danke im Voraus.

Solutions Collecting From Web of "Overinging functions.php mit Kind-Thema"

Sie können functionen in einem übergeordneten Thema nur überschreiben, wenn das übergeordnete Thema functionen steckbar macht (durch Einschließen in eine Bedingung if ( ! function_exists( 'function_name' ) ) ) oder wenn die Ausgabe einer function durch einen Filter geleitet wird (z. B. return apply_filters( $filter_name, $function_output );

  1. Pluggable-functionen : Definieren Sie in der Datei functions.php des Child-Themes einfach eine function mit demselben Namen wie die Pluggable-function, die Sie überschreiben möchten. Dies ist häufig der Fall, zum Beispiel bei der Einrichtungsfunktion eines Themes, zB twentyeleven_setup() .
  2. Filterbare functionen : Definieren Sie in der Datei functions.php des Child-Themes einen Callback und rufen add_filter( $filter_name, $callback ); dann add_filter( $filter_name, $callback );

Wenn das übergeordnete Design keine dieser beiden Methoden bereitstellt, können die functionen des übergeordneten Designs in einem untergeordneten Design nicht überschrieben werden.

Bearbeiten

Nur für Kicks und Grins, da WordPress die functions.php Datei des Child-Theme direkt vor der functions.php Datei des Parent-Themes lädt , versuchen Sie Folgendes in die functions.php Ihres Child-Themes einzufügen:

 < ?php define( 'TS_INC', get_stylesheet_directory() .'/inc' ); ?> 

Jedenfalls ist es einen Versuch wert.