我试图通过扩展wpdb类并覆盖自定义查询函数来获取带有回溯的查询数据。如果我创建db的符号链接,代码运行良好。php,但如果我尝试在插件文件中执行它,则无法直接工作。
代码为:
<?php
if ( ! defined( \'SAVEQUERIES\' ) ) {
define( \'SAVEQUERIES\', true );
}
class My_DB extends wpdb {
function __construct( $dbuser, $dbpassword, $dbname, $dbhost ) {
parent::__construct( $dbuser, $dbpassword, $dbname, $dbhost );
}
function query( $query ) {
if ( ! $this->ready ) {
if ( isset( $this->check_current_query ) ) {
$this->check_current_query = true;
}
return false;
}
if ( $this->show_errors ) {
$this->hide_errors();
}
$result = parent::query($query);
$result = parent::query( $query );
if ( ! SAVEQUERIES ) {
return $result;
}
$i = $this->num_queries - 1;
$this->queries[$i][3] = debug_backtrace(false);
$this->queries[$i][4] = $this->time_start;
$this->queries[$i][5] = $result;
return $result;
}
}
$wpdb = new My_DB( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );
?>
最合适的回答,由SO网友:gmazzap 整理而成
使命感wp_set_wpdb_vars()
更换后$wpdb
可能会成功。
$wpdb = new My_DB();
wp_set_wpdb_vars();
然而,官方支持的唯一替代方法
wpdb
是放置
db.php
在wp内容文件夹中。如果可以的话,我建议你这样做。