【发布时间】:2012-09-20 06:19:11
【问题描述】:
在 wordpress 中,它调用 header.php,然后调用任何模板名称或请求的页面。如何在我的 php 标头中声明一个变量,然后我可以在其他模板中引用该变量?
【问题讨论】:
在 wordpress 中,它调用 header.php,然后调用任何模板名称或请求的页面。如何在我的 php 标头中声明一个变量,然后我可以在其他模板中引用该变量?
【问题讨论】:
答案很大程度上取决于您需要它来做什么。如果您正在开发一个主题并希望在所有文件中保持值不变,您可以将它们放在主题目录中的functions.php 中,该目录始终被加载。在那里定义的变量应该在主题中的任何地方都可用。如果您分发主题,这将有效。
如果您想在自己的安装中根据需要修改现有主题,您可以按照建议将它们放入wp-config.php,或者(更简洁的方法)您可以在您要更改的主题的create a child theme .这将使其与 wordpress 核心分开,并防止主题更新覆盖您的更改。
我刚刚用functions.php试了一下:
functions.php:
$variable = "value";
header.php:
global $variable;
echo $variable;
为我工作。
【讨论】:
$domain = 'http://mydomain.com和global $domain = 'http://mydomain.com,然后我在标题中尝试了echo $domain; 。 php,它是空的
global $variable; $variable = "value";。我不认为global 是必要的。
wp_head() 之前声明它)跨度>
你可以这样声明(在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(); ?>
【讨论】:
global $domain='http://mydomain.com;,它不喜欢那样。
global 关键字在通常不可用的上下文中提取变量,例如在函数内部。详见文档:php.net/manual/en/language.variables.scope.php
您可以在wp-config.php 文件中定义它们。
配置文件永远不会更新,因此您的 Wordpress 安装会随着时间的推移而包含这些变量,即使您更新它。
<?php
require_once('wp-config.php');
echo $domain;
?>
【讨论】:
functions.php 中为该自定义主题添加它,但您将无法在其他主题中使用它们。
$domain = 'http://www.mydomain.com'; 然后从我的答案中调用代码。
另一种在 Wordpress 中定义全局常量的方法,如果出于最佳实践目的,您不想在 WP-config 中添加变量(以保持干净?)。并且由于某些原因,您的变量范围并没有在您的网站的任何地方获得全局范围。
你可以简单地使用:
define( 'MY_VARIABLE', 'My Value' );
有关 consts 范围的更多信息: http://php.net/manual/en/language.constants.php
【讨论】:
我认为 php session 是在 Wordpress 上用作全局变量的方式之一。
1.函数.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";
【讨论】: