Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-在null上调用成员函数时出现未捕获错误_Php_Wordpress - Fatal编程技术网

php-在null上调用成员函数时出现未捕获错误

php-在null上调用成员函数时出现未捕获错误,php,wordpress,Php,Wordpress,我在尝试使用WordPress的几个核心函数/类作为标准函数时,遇到了致命的/未捕获的错误 E\u ERROR:Uncaught ERROR:C:\Vip\\u tmp\wp statistics\includes\option中对空成员函数的调用suppress\u errors()。php:9 索引: @include 'wp-db.php'; @include 'option.php'; 请参阅最新的wp db.php option.php <?php function get_

我在尝试使用WordPress的几个核心函数/类作为标准函数时,遇到了致命的/未捕获的错误

E\u ERROR:Uncaught ERROR:C:\Vip\\u tmp\wp statistics\includes\option中对空成员函数的调用suppress\u errors()。php:9

索引:

@include 'wp-db.php';
@include 'option.php';
请参阅最新的
wp db.php

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

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

A.加载WordPress环境 正如在中所建议的,一个选项是加载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');

使用
@include
可能意味着include失败并继续。我倾向于使用一次
require\u
,因为如果找不到资源,这将停止。@NigelRen谢谢!切换到
require\u一次
但仍然出现相同的错误wordpress环境似乎没有加载。您是否尝试从主目录中包含
wp load.php
?@vstm我试图避免包含
wp load.php
,但它调用
/wp includes/load.php
下的
require\u wp\u db()
函数。这导致了解决方案,即添加
$wpdb=newwpdb(DB\u用户、DB\u密码、DB\u名称、DB\u主机)在索引文件中包含
wp db.php
之后