web-dev-qa-db-fra.com

Comment passer des variables avec get_template_part?

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

2
alex

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.

1
Rarst

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.

1
giraff