在尝试使用WordPress中的几个核心函数/类作为独立函数时,我遇到了致命/未捕获的错误。
E_ERROR: Uncaught Error: Call to a member function suppress_errors() on null in C:\Vip\_tmp\wp-statistics\includes\option.php:9
索引:
@include 'wp-db.php';
@include 'option.php';
查看最新的wp-db.php
code here.
option.php
<?php
function get_option( $option, $default = false ) {
global $wpdb;
$option = trim( $option );
if ( empty( $option ) )
return false;
// $suppress = $wpdb->suppress_errors();
$row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", $option ) );
$wpdb->suppress_errors( $suppress );
if ( is_object( $row ) ) {
$value = $row->option_value;
} else {
/** This filter is documented in wp-includes/option.php */
return apply_filters( "default_option_{$option}", $default, $option, $passed_default );
}
}
无论option.php
从wp-db.php
调用哪个成员函数,都会抛出上述错误。
发布于 2018-06-18 02:29:43
有两种方法可以解决这个问题:
A.加载WordPress环境
正如vstm在the comment中建议的那样,一种选择是加载WordPress的其余部分,这将涉及到包括wp-load.php
和wp-config.php.
B.缺少$wpdb
声明
下面列出了修复错误消息所需的缺失语句:
索引
require_once 'sources/constants.php';
require_once 'wp-db.php';
$wpdb = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
require_once 'option.php';
sources/constants.php
<?php
// define constants here
define('DB_HOST', 'YOUR HOST');
define('DB_USER', 'YOUR USER');
define('DB_PASSWORD', 'YOUR PASSWORD');
define('DB_NAME', 'YOUR DB');
https://stackoverflow.com/questions/50899119
复制相似问题