Im使用以下内容访问Wordpress数据库中的表格信息
require_once(ABSPATH . \'wp-config.php\');
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD);
mysqli_select_db($conn, DB_NAME);
工作正常,我可以连接并显示信息。问题是,当我尝试从工具下仪表板中的插件执行相同的操作时,我得到以下消息:
注意:在C:\\xampp\\htdocs\\wordpressexpensereport\\wp content\\plugins\\editdb\\connection中使用了未定义的常量ABSPATH-假定为“ABSPATH”。php在线2
警告:require\\u once(ABSPATHwp config.php):无法打开流:C:\\xampp\\htdocs\\wordpressexpensereport\\wp content\\plugins\\editdb\\connection中没有此类文件或目录。php在线2
致命错误:require\\u once():无法打开所需的“ABSPATHwp config”。C:\\xampp\\htdocs\\wordpressexpensereport\\wp content\\plugins\\editdb\\connection中的php“(include\\u path=\';C:\\xampp\\php\\PEAR”)。php在线2
我已经检查了我的wp配置,我有以下内容
/** Absolute path to the WordPress directory. */
if ( !defined(\'ABSPATH\') )
define(\'ABSPATH\', dirname(__FILE__) . \'/\');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . \'wp-settings.php\');
我的实现是否缺少一些东西?
谢谢
最合适的回答,由SO网友:majick 整理而成
我猜这是一个自定义的“插件”,您希望在外部运行一个连接到WordPress数据库的文件,而不是作为标准插件在WordPress环境中加载,就像@belinus说的那样,您可以使用$wpdb
班
不管怎样,自从ABSPATH
定义于wp-config.php
, 您不能使用ABSPATH
查找并加载wp-config.php
- 因为它尚未加载,因此尚未定义。这就是有缺陷的逻辑。。。因此,您会遇到错误。
如果你确定wp-config.php
位于“plugin”文件所在的目录中,可以执行以下操作:
function find_require($file,$folder=null) {
if ($folder === null) {$folder = dirname(__FILE__);}
$path = $folder.\'/\'.$file;
if (file_exists($path)) {require($path); return $folder;}
else {
$upfolder = find_require($file,dirname($folder));
if ($upfolder != \'\') {return $upfolder;}
}
}
$configpath = find_require(\'wp-config.php\');
这将递归搜索
wp-config.php
并在插件文件目录上方加载它。(再次假设
wp-config.php
位于插件文件上方的目录中。)