php - 对null的任何成员函数调用都没有错误

时间:2018-06-17 17:51:15

标签: php wordpress

在尝试使用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 );
    }
}

无论wp-db.php调用的option.php成员函数是什么,都会抛出上述错误。

1 个答案:

答案 0 :(得分:0)

有两种方法可以解决这个问题:

一种。加载WordPress环境

根据the comment vstm中的建议,一个选项是加载其余的WordPress,其中包括wp-load.php&amp; 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';

<强>源/ 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');