web-dev-qa-db-fra.com

On-the-price-to-talk-developer

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?

2
Anagio

De manière générale, les thèmes pour enfants visaient à l'origine à pouvoir faire deux choses:

  1. Remplacer le thème parent CSS
  2. Remplacer les fichiers de modèle de thème parent

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).

4
Chip Bennett

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()
0
userabuser