在wordpress中,它会调用header.php,然后调用模板名称或请求的页面。如何在我的php标头中声明一个变量,然后我可以在其他模板中引用它?
答案 0 :(得分:41)
答案很大程度上取决于你需要它。如果您正在开发主题并希望通过所有文件保持值不变,则可以将它们放在functions.php
中的主题目录中,该主目录始终加载。在那里定义的变量应该在主题的任何地方都可用。如果您分发主题,则此方法有效。
如果您想在自己的安装中修改现有主题以满足您的需求,您可以按照建议将它们放在wp-config.php
中,或者({更清洁的方法)可以create a child theme主题你想改变。这将使它与wordpress核心分开,并防止主题更新覆盖您的更改。
我刚尝试使用functions.php
:
的functions.php:
$variable = "value";
的header.php:
global $variable;
echo $variable;
适合我。
答案 1 :(得分:7)
您可以这样声明(在functions.php中):
global $domain;
$domain = 'http://www.mydomain.com/';
你可以像这样回应WordPress网站的域名。
<?php bloginfo('site_url');?>
或者
$url = site_url();
echo $url;
或作为函数,在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;
}
然后在任何地方,使用<?php displayMyDomain(); ?>
答案 2 :(得分:4)
您可以在wp-config.php
文件中定义它们。
配置文件永远不会更新,因此即使您更新它,您的Wordpress安装也会随着时间的推移而拥有这些变量。
<?php
require_once('wp-config.php');
echo $domain;
?>
答案 3 :(得分:2)
另一种在Wordpress中定义全局变量的方法,如果出于最佳实践目的,您不想在WP-config中添加变量(以保持其清洁?)。由于某些原因,您的变量范围并未在您的网站中的任何地方获得全局范围。
您可以简单地使用:
define( 'MY_VARIABLE', 'My Value' );
有关consts范围的更多信息: http://php.net/manual/en/language.constants.php
答案 4 :(得分:-2)
我认为 php session 是在 Wordpress 上用作全局变量的方法之一。
<强> 1。的functions.php 强>
if(!session_id()) {
session_start();
}
<强> 2。您想要设置或获取全局变量的任何.php
文件
获取变量
if(isset($_SESSION['global_var'])) {
$local_var = $_SESSION['global_var'];
}
设置变量
$_SESSION['global_var'] = "This is global var";