WordPress 4.7 call_user_func_array()

mdo*_*nko 3 php wordpress wordpress-4.7

更新至WordPress 4.7,并且在启用我的自定义插件之一时收到此错误:

( ! ) Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given in /home/vagrant/Sites/wordpress/wp includes/class-wp-hook.php on line 298
Run Code Online (Sandbox Code Playgroud)

我也启用了调试功能: 在此处输入图片说明

我不确定是什么问题,因为堆栈跟踪看起来很神秘。关于什么可能损坏了插件或如何诊断问题的任何建议?

bir*_*ire 5

正如@Afzal提到的,这一行是有问题的:

add_action('plugins_loaded', $this->plugin_update());
Run Code Online (Sandbox Code Playgroud)

我们可以通过以下简单示例复制您得到的错误:

class Test
{
    public function init()
    {
        add_action( 'plugins_loaded', $this->plugin_update() );
    }

    public function plugin_update()
    {
    }
}

$obj = new Test;
$obj->init();   
Run Code Online (Sandbox Code Playgroud)

解决此问题的常用方法是替换:

add_action( 'plugins_loaded', $this->plugin_update() );
Run Code Online (Sandbox Code Playgroud)

与:

add_action( 'plugins_loaded', array( $this, 'plugin_update' ) );
Run Code Online (Sandbox Code Playgroud)