我正在开发一个插件,我需要在其中包含配置并在点击时查询wordpress数据库。我的问题是 如何动态获取wp-config.php的url ..我已经使用了
include_once $_SERVER['DOCUMENT_ROOT'] . '/wp-config.php';
但我收到错误
include_once(): Failed opening /wp-config.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear')
我尝试过很多选项,比如
require_once('../../../wp-config.php');
require_once ("../wp-config.php");
我dunno wat是确切的路径..
感谢任何帮助..
答案 0 :(得分:7)
简而言之,您不应该尝试在插件中包含wp-config.php。你有没有很好的理由采取这种方法。纯粹主义者甚至会说永远不应该这样做。
WordPress插件已经具有访问全局$wpdb
变量以进行查询的正确上下文。看一下这个例子:
global $wpdb;
$results = $wpdb->get_results( $wpdb->prepare("SELECT * FROM {$wpdb->prefix}your_table WHERE column = %s", $your_value) );
建议阅读:
答案 1 :(得分:3)
应该通过全局$ wpdb变量来查询WordPress中的数据库。请参阅codex条目:http://codex.wordpress.org/Class_Reference/wpdb。
答案 2 :(得分:0)
如果你仍然想避免所有的警告来做出良好的编码实践,你可以试试这个包含很多路径的地方可以找到wp-config.php
if( !(include $_SERVER['DOCUMENT_ROOT'].'/wp-config.php') )
if( !(include 'wp-config.php') )
if( !(include '../../../wp-config.php') )
if( !(include '../../../../wp-config.php') )
if( !(include '../../../../../wp-config.php') )
die('<H1>Can\'t include config.</H1>');
注意:
您可以使用if( !(include 'my_custom_path/wp-config.php') )
在包含wp-config之前你不能使用wp_die()
,然后使用php函数die()