Passing variables to templates (alternatives to globalizing variables)

I want to make my WP code simpler (there’s some mess within header.php, page.php etc.). So, for example, I want to set something like this global:

$foo = get_option('foo');  

So $foo will work properly used anywhere in page.php, header.php, footer.php, loop.php and also within different theme files linked to functions.php (require_once).

I already know two ways of achieving this, both require editing functions.php:

Global dynamic function

function foo() {
   return 'bar';
}

Global constant

define('FOO_BAR', 'directory');    

Do I really need to fire a function in multiple places just for one variable? Isn’t it an overkill?

1 Answer
1

You could also use this function:

set_query_var('foo', $foo);

WP will extract and expose all query variables in every template it loads, so you will be able to access it as $foo

Leave a Comment