Je créais un thème enfant aujourd'hui et je devais écraser un fichier php qui était inclus à l'aide de ce code dans le fichier themes functions.php.
require_once( get_template_directory() . '/function-includes/theme-functions.php' );
J'ai essayé d'utiliser require_once( get_stylesheet_directory(). '/function-includes/theme-functions.php' );
dans mon fichier de fonctions de thèmes enfants, mais cela a provoqué une erreur et n'a pas chargé le site du tout.
J'ai donc fini par utiliser locate_template( '/function-includes/theme-functions.php', true );
dans le fichier functions.php du thème parent
locate_template
est-il une meilleure méthode à utiliser par les développeurs de thèmes pour permettre le développement de thèmes enfants?
Existe-t-il un autre moyen pour moi d’utiliser uniquement le fichier functions.php de votre thème enfants pour écraser ce fichier theme-functions.php?
De manière générale, les thèmes pour enfants visaient à l'origine à pouvoir faire deux choses:
Je doute que le développeur du thème ait l'intention de remplacer le fichier /function-includes/theme-functions.php
par un thème enfant. Les fichiers fonctionnels sont généralement un élément central du thème et permettre à un thème enfant de les remplacer en gros introduirait une complexité de développement importante dans le thème.
Plutôt que de demander à un fichier fonctionnel de remplacer un thème enfant, je demanderais plutôt au développeur de rendre la sortie de fonction personnalisée filtrable , ou (le cas échéant), pour rendre certaines fonctions personnalisées enfichables (de loin, je préfère les fonctions filtrables en sortie aux fonctions enfichables).
Essayez-vous de récupérer le fichier theme-functions.php
situé dans le répertoire du thème parent?
Lorsque vous souhaitez appeler un fichier à partir du répertoire du thème parent, vous devez utiliser:
get_template_directory()
Lorsque vous souhaitez appeler un fichier à partir de votre répertoire de thème enfant, vous utilisez,
get_stylesheet_directory()