Überschreiben Sie die Konstanten im Child-Thema

Ich habe ein übergeordnetes Thema, das diese Konstanten in function.php: deklariert function.php:

 define("THEME_DIR", get_template_directory()); define("THEME_DIR_URI", get_template_directory_uri()); define("THEME_NAME", "BARNELLI"); define("THEME_STYLES", THEME_DIR_URI . "/css"); define("THEME_INCLUDES", THEME_DIR . "/includes"); define("THEME_POST_TYPES", THEME_DIR . "/includes/post-types"); define("THEME_INCLUDES_URI", THEME_DIR_URI . "/includes"); define("THEME_FONTS", THEME_DIR_URI . "/font-awesome"); 

Ich muss einige Dateien ändern, die im includes Verzeichnis enthalten sind, und die Verzeichnisstruktur (einschließlich Dateien) kopieren.

Wie ich in der Codex-Dokumentation gelesen habe, wird function.php im untergeordneten Thema vor der gleichen Datei im übergeordneten Thema geladen, und nur die Dateien im Stammverzeichnis des übergeordneten Themas können im untergeordneten Thema überschrieben werden.

Wenn ich in der function.php eine modifizierte Konstante deklariere, wird dies durch die function.php function.php des Elternteils überschrieben, und wenn ich eine eingeschlossene Datei in das untergeordnete Themaverzeichnis kopiere (und modifiziere), wird es nicht funktionieren.

Was schlägst du vor, um dieses Problem zu lösen?

Solutions Collecting From Web of "Überschreiben Sie die Konstanten im Child-Thema"

Konstanten können nicht so einfach neu definiert werden.

https://stackoverflow.com/questions/8465155/redefine-constants-in-php

Daher werden die Konstanten von untergeordneten Designs anstelle von übergeordneten verwendet. Allerdings wird es eine Warnung geben, aber das sollte kein Problem verursachen, wenn Sie die Warnung deaktivieren.

Sie sollten solche Konstanten hinzufügen, wenn Sie keine Warnung möchten:

 if ( !defined('CONSTANT') ) define('CONSTANT', 'constant_value'); 

BEARBEITEN:

Einfache Antwort, füge Konstanten in die functions.php deines Child-Themes ein und es wird verwendet, wenn du diese Konstanten verwendest.

Umfassende Antwort, warum machen Sie sich überhaupt die Mühe, die CONSTANTS zu modifizieren? CONSTANTS sollten nicht geändert werden. Sie können eigene Konstantensätze für Ihr untergeordnetes Thema erstellen. Wenn ich Sie wäre, würde ich in der functions.php Child-Themas Folgendes hinzufügen und diese neuen Konstanten bei Bedarf verwenden.

 define("CHILD_THEME_DIR", get_stylesheet_directory()); define("CHILD_THEME_DIR_URI", get_stylesheet_directory_uri()); define("CHILD_THEME_NAME", "BARNELLI-CHILD"); define("CHILD_THEME_STYLES", CHILD_THEME_DIR_URI . "/css"); define("CHILD_THEME_INCLUDES", CHILD_THEME_DIR . "/includes"); define("CHILD_THEME_POST_TYPES", CHILD_THEME_DIR . "/includes/post-types"); define("CHILD_THEME_INCLUDES_URI", CHILD_THEME_DIR_URI . "/includes"); define("CHILD_THEME_FONTS", CHILD_THEME_DIR_URI . "/font-awesome"); 

Da das übergeordnete Thema bereits die Konstanten deklariert, gilt @ toschos Antwort nicht für Ihren Fall.