【发布时间】:2013-09-11 03:23:30
【问题描述】:
我正在尝试创建一个界面,用于更新托管 20 多个 WordPress 站点的服务器上的所有 WordPress 插件实例。除了我有一个循环之外,我已经完成了所有工作:
require_once($path.'/wp-load.php');
require_once($path.'/wp-admin/includes/admin.php');
require_once($path.'/wp-admin/includes/class-wp-upgrader.php');
其中$path 等于网站目录($path 会随着我的循环的每次迭代而变化)。
我需要以这种方式要求文件的原因是因为wp-load.php 包括(除其他外)一个名为wp-config.php 的文件,它定义了诸如 SQL 数据库之类的东西,每个网站之间都不同。
TL&DR 并陈述我的实际问题:
我有什么办法可以像下面的代码那样做吗?
require_once("dir1/a.php"); // define("VAR","dir1");
echo VAR; // displays "dir1"
unrequire_once("dir1/a.php");
require_once("dir2/a.php"); // define("VAR","dir2");
echo VAR; // displays "dir2"
【问题讨论】:
-
我想,问题不在于
require_once本身,因为路径不同。您需要取消define。 -
@kirilloid 现在我看到了,你说得对。让我解决我的问题。
-
恐怕没有办法做到这一点。在一个脚本中。您可以通过
exec或其他方式更改您的脚本以在每个站点运行一个 php 脚本。 -
@kirilloid 效率并不是非常重要,因为这将是一个严格的内部工具,所以如果必须的话,我会使用这种方法。我能想到的唯一选择是动态名称间距,这在 PHP 中似乎还不可能。