J'ai un thème parent qui déclare ces constantes dans 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");
je dois modifier certains fichiers inclus dans le répertoire includes
et copier la structure de répertoires (y compris les fichiers).
Comme je l'ai lu dans la documentation du Codex, function.php
dans le thème enfant est chargé avant le même fichier dans le thème du parent et seuls les fichiers situés à la racine du thème parent peuvent être remplacés dans le thème enfant.
Si je déclare une constante modifiée dans le function.php
de l'enfant sera remplacé par le function.php
du parent et si je copie (et modifie) un fichier inclus dans le répertoire du thème de l'enfant ne fonctionnera pas.
Que proposez-vous pour résoudre ce problème?
Les constantes ne peuvent pas être redéfinies aussi facilement.
https://stackoverflow.com/questions/8465155/redefine-constants-in-php
Ainsi, les constantes des thèmes enfants seront utilisées à la place des parents. Cependant, il y aura un avertissement, mais cela ne devrait pas créer de problème si vous désactivez l'avertissement.
Vous devriez ajouter des constantes comme ceci si vous ne voulez aucun avertissement:
if ( !defined('CONSTANT') )
define('CONSTANT', 'constant_value');
EDIT:
Réponse simple, ajoutez des constantes dans le functions.php
de votre thème Enfant et il sera utilisé lorsque vous utiliserez ces constantes.
Réponse générale: Pourquoi avez-vous même pris la peine de modifier CONSTANTS? CONSTANTS ne devrait pas être modifié. Vous pouvez créer vos propres jeux de constantes à utiliser dans votre thème enfant. Si j'étais vous, j'ajouterais ce qui suit dans le functions.php
du thème pour enfants et utiliserais ces nouvelles constantes chaque fois que nécessaire.
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");
Comme le thème parent déclare déjà les constantes, la réponse de @ toscho ne s'applique pas à votre cas.