WordPress : Inclure les fichiers dans le fichier de fonctions du thème enfant

Publié par Jean-Michel le

Généralement, dans mon fichier de fonction de thème, j’aurai besoin d’autres fichiers pour que les choses restent propres.

require_once("foo.php");

Travaillant maintenant dans un thème enfant, j’aimerais faire la même chose. J’ajoute des options d’administration personnalisées et il semble impossible d’inclure du code. J’ai fait écho au chemin pour m’assurer que j’appelle le bon fichier et qu’il appelle le bon emplacement, mais rien dans ce fichier ne semble fonctionner. Le code s’exécute correctement s’il est placé dans le fichier de fonctions du thème enfant.

Solution n°1 trouvée

Dans un thème enfant, la bonne manière est

require_once( get_stylesheet_directory() . '/foo.php');

Dans le thème parent, vous pouvez toujours utiliser

require_once ( get_template_directory() . '/foo.php' );

get_template_directory()fonctionne toujours dans le thème enfant, ciblez malheureusement le répertoire du thème parent. Dans ton cas c’est utile

Solution n°2 trouvée

Les thèmes enfants référencent les thèmes parents par nom de répertoire, et dans une installation normale, tous vos thèmes vivent dans wp-content/themes/, donc je dirais que c’est bien de référencer ces thèmes par leur chemin relatif :

include '../parent-theme/some-file.php';

Si cela vous met mal à l’aise, j’observe les constantes suivantes dans WordPress 3.0.1 avec un thème enfant de vingt dix ans appelé tt-child :

TEMPLATEPATH     /home/adam/public_html/wp3/wp-content/themes/twentyten
STYLESHEETPATH   /home/adam/public_html/wp3/wp-content/themes/tt-child

Vous pouvez donc faire ce qui suit dans votre thème enfant pour référencer le répertoire du thème parent :

include TEMPLATEPATH . '/some-file.php';

Solution n°3 trouvée

Vous ne voulez certainement pas coder en dur l’URL. La bonne façon de le faire est

require_once( get_stylesheet_directory(). '/my_included_file.php' );

Voir plus d’informations sur WordPress Codex

Maintenant, si vous modifiez par exemple header.php qui a une inclusion, vous le référencerez comme suit :

require_once( get_stylesheet_directory() . '/../parenthteme/my_included_file.php' );

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *