In wordpress, it calls header.php then whatever template name or the page requested. How can I declare a variable in my php header which I can then refer to in my other templates?
问题:
回答1:
The answer pretty much depends what you need it for. If you are developing a theme and want to keep values constant through all files you can place them in functions.php
in the theme directory, which is always loaded. Variables defined there should be available everywhere in the theme. This works if you distribute the theme.
If you want to modify an existing theme for your needs on your own installation, you can either put them in wp-config.php
, as suggested, or (a cleaner method) you can create a child theme of the theme you want to change. This will keep it separate from the wordpress core and will prevent theme updates from overwriting your changes.
I just tried it using functions.php
:
functions.php:
$variable = "value";
header.php:
global $variable;
echo $variable;
works for me.
回答2:
You can declare it like so (In functions.php):
global $domain;
$domain = 'http://www.mydomain.com/';
You can echo the domain of the WordPress site like this, though..
<?php bloginfo('site_url');?>
Or
$url = site_url();
echo $url;
Or as a function, in functions.php
function displayMyDomain() {
global $domain; // you probably don't actually need to set it global as it is a function
$domain = 'http://www.domain.com/';
echo $domain;
}
Then anywhere, use <?php displayMyDomain(); ?>
回答3:
You can define them in wp-config.php
file.
The config file is never updated so your Wordpress installation will have those variables over time even if you update it.
<?php
require_once('wp-config.php');
echo $domain;
?>
回答4:
Another way to define global consts in Wordpress, if for best practice purpose you don't want to add a variable to your WP-config (to keep it clean ?). And for some reasons your variable scope is not getting the global scope everywhere in your website.
You can simply use :
define( 'MY_VARIABLE', 'My Value' );
For more information about consts scope : http://php.net/manual/en/language.constants.php
回答5:
I think php session is one of the way to use as a global variable on Wordpress.
1. Functions.php
if(!session_id()) {
session_start();
}
2. Any .php
file where you want set or get global variables
get variable
if(isset($_SESSION['global_var'])) { $local_var = $_SESSION['global_var']; }
set variable
$_SESSION['global_var'] = "This is global var";