Je développe un thème personnalisé et j'aime transmettre certaines variables aux fichiers sélectionnés. J'appelle les fichiers de vue à partir de functions.php.
$var1 = ;
$var2 = ;
etc
include_once('form-views/view-profile.php');//works
//get_template_part('includes/form-views/view','profile');//doesn't work
Maintenant avec include ça marche
C'est essentiellement un problème de visibilité de la portée. include
introduit le code dans une étendue actuelle, l'appel de fonction crée une nouvelle étendue fermée. Dans get_template_part()
, seuls certains globaux WordPress sont rendus disponibles par load_template()
call inside.
Si la réponse de base est de déclarer vos variables en tant que variables globales, vous voudrez peut-être réfléchir un peu à votre architecture globale - ce n'est généralement pas un bon code de connexion.
Dans ces cas, j'utilise habituellement:
include(locate_template('includes/form-views/view-profile'));
De cette manière, un thème enfant peut remplacer le fichier.