如何在PHP中声明一个全局变量我可以跨模板使用?

时间:2012-09-28 11:00:46

标签: php wordpress

在wordpress中,它会调用header.php,然后调用模板名称或请求的页面。如何在我的php标头中声明一个变量,然后我可以在其他模板中引用它?

5 个答案:

答案 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";