33

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

4

5 回答 5

47

答案很大程度上取决于你需要它做什么。如果您正在开发一个主题并希望在所有文件中保持值不变,您可以将它们放在functions.php主题目录中,该目录始终被加载。在那里定义的变量应该在主题中的任何地方都可用。如果您分发主题,这将有效。

如果您想根据自己的安装需要修改现有主题,您可以wp-config.php按照建议将它们放入 中,或者(更简洁的方法)您可以创建要更改的主题的子主题。这将使其与 wordpress 核心分开,并防止主题更新覆盖您的更改。

我刚刚尝试使用functions.php

函数.php:

$variable = "value";

header.php:

global $variable;
echo $variable;

为我工作。

于 2012-09-28T11:05:29.453 回答
9

您可以像这样声明它(在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(); ?>

于 2012-09-28T11:05:30.893 回答
4

wp-config.php您可以在文件中定义它们。

配置文件永远不会更新,因此即使您更新它,您的 Wordpress 安装也会随着时间的推移而具有这些变量。

<?php
  require_once('wp-config.php');
  echo $domain;
?>
于 2012-09-28T11:02:11.663 回答
3

另一种在 Wordpress 中定义全局常量的方法,如果出于最佳实践目的,您不想在 WP-config 中添加变量(以保持干净?)。并且由于某些原因,您的变量范围并没有在您的网站的任何地方获得全局范围。

您可以简单地使用:

define( 'MY_VARIABLE', 'My Value' );

有关 consts 范围的更多信息:http: //php.net/manual/en/language.constants.php

于 2017-08-30T10:36:37.580 回答
-3

我认为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";
    
于 2018-01-09T17:11:00.777 回答