web-dev-qa-db-fra.com

Passer des variables aux modèles (alternatives à la globalisation des variables)

Je veux simplifier mon code WP (il y a du désordre dans header.php, page.php, etc.). Donc, par exemple, je veux mettre quelque chose comme ceci global:

$foo = get_option('foo');  

Donc, $foo fonctionnera correctement, utilisé n'importe où dans page.php, header.php, footer.php, loop.php et également dans différents fichiers de thèmes liés à functions.php (require_once).

Je connais déjà deux manières d'y parvenir, toutes deux nécessitent l'édition de functions.php:

Fonction dynamique globale

function foo() {
   return 'bar';
}

Constante globale

define('FOO_BAR', 'directory');    

Dois-je vraiment activer une fonction à plusieurs endroits pour une seule variable? N'est-ce pas exagéré?

2
Wordpressor

Vous pouvez également utiliser cette fonction:

set_query_var('foo', $foo);

WP extraira et exposera toutes les variables de requête dans chaque modèle chargé, de sorte que vous pourrez y accéder en tant que $foo

9
onetrickpony