WordPress没有看到vendor / autoload.php

时间:2017-08-25 19:36:44

标签: php wordpress composer-php environment autoload

我正在学习如何创建自己的WordPress主题,所以我设置了一个本地环境,我在根目录中有一个composer.json和wp-content文件夹。除此之外,我还在主题文件夹中有一个composer.json,用于仅用于主题的依赖项。我遇到的问题是WordPress没有读取根目录中的供应商/自动加载。

我正在尝试从autoload.php加载的.env文件加载我的所有数据库详细信息。当我将自动加载的目录路径更改为主题文件夹时,一切正常。

当我将其更改为使用root中的自动加载时,WordPress会发出一条错误消息,指出它无法连接到数据库。我一直在尝试几种方法让WordPress从根目录的vender文件夹中读取autoload.php,但它只适用于主题。

我的代码是:

require_once(dirname(__DIR__) . '/vendor/autoload.php');
 $dotenv = new Dotenv\Dotenv( dirname( __DIR__ ) );
 $dotenv->load();

任何帮助或建议都将非常感激。感谢您抽出宝贵时间阅读我的帖子。

由于

1 个答案:

答案 0 :(得分:0)

建议将“ vendor”文件夹放在主题文件夹中,因为这是标准做法。这就是dirname(__DIR__)返回主题或插件路径的原因。

尽管如此,如果您仍然想从根目录获取完整的目录路径...

对于PHP <5.3,请使用:

$upOne = realpath(dirname(__FILE__) . '/..');

或者在PHP 5.3+中使用:

$upOne = realpath(__DIR__ . '/..');