Code Executing Too Late?

时间:2016-02-13 作者:Joe Bobby

我创建了一个mu插件文件夹,其中包含以下代码块:

if ( $_SERVER["HTTP_HOST"] === "domain1.com" ) { $sitetype = one; }
if ( $_SERVER["HTTP_HOST"] === "domain2.com" ) { $sitetype = two; }
if ( $_SERVER["HTTP_HOST"] === "domain3.com" ) { $sitetype = three; }
基本上,我想做的是分配$sitetype (基本上是一个类别)转到wordpress站点,并根据当前域名进行更改。

wordpress头文件中的代码是:

if ( $sitetype == all ){ echo "site type 1"; }
if ( $sitetype == viral ){ echo "site type 2"; }
if ( $sitetype == woman ){ echo "site type 3"; }
对于第一个代码块,它在mu plugins文件夹中不起作用,但如果我将它移到头文件中第二个代码块的正上方,它就可以正常工作,因此我认为它在mu plugins文件夹中执行不正确。有没有办法将代码保存在mu plugins文件夹中,并以同样的方式工作?

1 个回复
最合适的回答,由SO网友:bonger 整理而成

根据注释,在两个(或所有)位置使用之前,将其声明为全局:

global $sitetype;
if ( $_SERVER["HTTP_HOST"] === "domain1.com" ) { $sitetype = one; } //etc
以及

global $sitetype;
if ( $sitetype == all ){ echo "site type 1"; } //etc