0

我正在开发一个插件,我需要在其中包含配置并在单击时查询 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");

我不知道 wat 是确切的路径..

任何帮助表示赞赏..

4

3 回答 3

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) );

推荐阅读:

于 2014-02-04T14:44:48.360 回答
3

在 WordPress 中查询数据库应该通过全局 $wpdb 变量来完成。请参阅法典条目:http ://codex.wordpress.org/Class_Reference/wpdb 。

于 2014-02-04T14:37:51.960 回答
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()

于 2015-04-10T01:40:57.370 回答