Comment Passer une variable avec get_template_part pour WordPress

Qui n'a jamais pesté devant son code lorsque que vous voulez simplement réutiliser votre variable $poo dans votre template que vous appelez, comme le force demande WordPress, avec la fonction  get_template_part() ? Voici un code tout simple qui ne fonctionne pas:

$poo = 'toto';
 get_template_part('single', 'toto);

Le fichier single-toto.php:

echo $toto;

Rien, nada, quedchi ....

L'astuce pourtant est toute simple. Il suffit d'ajouter votre variable à $wp_query via set_query_var. le code devient alors:

$poo = 'toto';
 set_query_var( 'poo', $poo );
 get_template_part('single', 'toto);

Et voilou .... $poo est accessible dans votre template single-toto.php, mais aussi tout autre template qui serait appelé par la suite. Mais pourquoi donc ...

La fonction get_template_part() fait appel à locate_template() qui ensuite fait appel à load_template() pour finalement retrouver votre template via un require() ou require_once(). Si on observe le code de la fonction load_template(), on remarque un petit bout de code intéressant juste avant le require() :

extract( $wp_query->query_vars, EXTR_SKIP );

C'est ici que la magie s'opère.

Notez que vous pouvez ensuite retirer cette variable juste après votre get_template_part() via remove_query_var('poo)

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Vous pourriez aussi être intéressés par

Sauvegarde automatique de Mysql

Système de sauvegarde automatique des bases de données MySQL. automysqlbackup sauvegarde toutes vos tables de données et les conservent plusieurs jours, semaines ou mois, selon vos besoins

Août 05 2015

Facebook : Lister les pages que vous administrez

Pour publier sur une fan page, il faut obtenir un access_token valide avec l'autorisation de gérer les pages. Ce petit bout de code, à adapter selon vos besoins, liste les pages pour lesquelles vous êtes admin.

Déc 10 2012