【问题标题】:require wp-load.php 3 directories back要求 wp-load.php 返回 3 个目录
【发布时间】:2011-03-26 14:57:57
【问题描述】:

我试图在 /html/ 目录的开头包含一个文件 (/wp-load.php)。我试图从 /wp-content/themes/pw-steel-orange/index-load.php 中包含它,但我总是收到错误消息

警告:require_once(../wp-load.php) [function.require-once]:无法打开流:/nfs/c07/h01/mnt/102799/domains/platyworld 中没有这样的文件或目录。 com/html/wp-content/themes/pw-steel-orange/index-load.php 在第 1 行

致命错误:require_once() [function.require]: 无法打开所需的 '../wp-load.php' (include_path='.:/usr/local/php-5.2.6-1/share/pear ') 在 /nfs/c07/h01/mnt/102799/domains/platyworld.com/html/wp-content/themes/pw-steel-orange/index-load.php 第 1 行

我做错了吗?我虽然 ../ 将包含项带到了开始目录

抱歉,如果这是重复的,我在搜索中找不到与此相关的内容...

【问题讨论】:

  • 当然 WordPress 应该加载您的主题文件,而不是相反。我不建议加载 wo-load.php 除非你真的必须这样做。

标签: php path include require


【解决方案1】:

您可以发出以下命令来查看您从哪里提取文件(您所在的位置):

// get your current working directory
echo getcwd();

然后相应地包含该文件。

// file is 3 dirs back
include '../../../wp-load.php';

例如,如果您使用像 CodeIgniter 这样的框架,那么在您的应用程序一开始就会有一个 index.php 文件,它将调用所有其他代码。因此,您必须根据该文件包含该文件。

大多数框架都使用他们称之为BASEPATH 的东西,它是当前到站点的实际完整服务器路径。在将您的网站迁移到其他目的地时,这可能会非常有用。

【讨论】:

  • 奇怪...我尝试了 ../../../wp-load.php 几次,但它直到现在才起作用...谢谢!
  • @sman591 后面的 3 个级别是一个疯狂的猜测......! :) 我只是想让您知道如何使用getcwd 查看您的位置,然后进行相应调整。但我很高兴它奏效了! ;)
【解决方案2】:

这是一种半自动的方法:

$incPath = str_replace("/wp-content/plugins/PLUGIN_NAME","",getcwd());
ini_set('include_path', $incPath);
include('wp-load.php');

无论如何,它仍然是bad idea to include wp-load.php。 (如果此链接被删除,See that page here

【讨论】:

    猜你喜欢
    • 2016-09-17
    • 2012-12-01
    • 2013-01-11
    • 2018-09-03
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多