我正在学习如何创建自己的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();
任何帮助或建议都将非常感激。感谢您抽出宝贵时间阅读我的帖子。
由于
答案 0 :(得分:0)
建议将“ vendor”文件夹放在主题文件夹中,因为这是标准做法。这就是dirname(__DIR__)
返回主题或插件路径的原因。
尽管如此,如果您仍然想从根目录获取完整的目录路径...
对于PHP <5.3,请使用:
$upOne = realpath(dirname(__FILE__) . '/..');
或者在PHP 5.3+中使用:
$upOne = realpath(__DIR__ . '/..');