php-在null上调用成员函数时出现未捕获错误
我在尝试使用WordPress的几个核心函数/类作为标准函数时,遇到了致命的/未捕获的错误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_
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
之后