警告:call_user_func_array()期望参数1是有效的回调,没有给定的数组或字符串

时间:2017-01-23 18:25:47

标签: php wordpress

我在我的WordPress网站上,这些重复的消息会弹出我的信息中心。我正在使用WordPress 4.7.1。我的网站上没有FeedWordPress插件,因为我看到他们也遇到了这个错误的问题。

  

警告:call_user_func_array()期望参数1有效   回调,没有给出的数组或字符串   第298行/home/mydomain/public_html/wp-includes/class-wp-hook.php

     

警告:call_user_func_array()期望参数1有效   回调,没有给出的数组或字符串   第298行/home/mydomain/public_html/wp-includes/class-wp-hook.php

这一行是298

$value = call_user_func_array( $the_['function'], $args );

这是包含第298行的函数

public function apply_filters( $value, $args ) {
    if ( ! $this->callbacks ) {
        return $value;
    }

    $nesting_level = $this->nesting_level++;

    $this->iterations[ $nesting_level ] = array_keys( $this->callbacks );
    $num_args = count( $args );

    do {
        $this->current_priority[ $nesting_level ] = $priority = current( $this->iterations[ $nesting_level ] );

        foreach ( $this->callbacks[ $priority ] as $the_ ) {
            if( ! $this->doing_action ) {
                $args[ 0 ] = $value;
            }

            // Avoid the array_slice if possible.
            if ( $the_['accepted_args'] == 0 ) {
                $value = call_user_func_array( $the_['function'], array() );
            } elseif ( $the_['accepted_args'] >= $num_args ) {
                $value = call_user_func_array( $the_['function'], $args );
            } else {
                $value = call_user_func_array( $the_['function'], array_slice( $args, 0, (int)$the_['accepted_args'] ) );
            }
        }
    } while ( false !== next( $this->iterations[ $nesting_level ] ) );

    unset( $this->iterations[ $nesting_level ] );
    unset( $this->current_priority[ $nesting_level ] );

    $this->nesting_level--;

    return $value;
}

这是一个严重警告吗?如果是这样,我该如何解决这个问题?

5 个答案:

答案 0 :(得分:0)

只是为了更新这个线程 - 我有同样的错误升级到4.7.2。我一个接一个地停用我的插件,发现一个导致问题

答案 1 :(得分:0)

你说你停用了一些插件并修复了它。什么插件导致了这个问题,因为我得到同样的东西

答案 2 :(得分:0)

我有同样的问题。我禁用了Slider Revolution插件,它解决了这个问题。

希望它有用!

答案 3 :(得分:0)

I am not getting the exact solution, but I got a temporary solution for immediate basis, 
just hide it, I use the function on the top of the file after 
'<?php' start. It disables the warning.

                define('WP_DEBUG_DISPLAY', false); //It's work for me

                You may also try

                ini_set('display_errors','Off');
                ini_set('error_reporting', E_ALL );
                define('WP_DEBUG', false);

答案 4 :(得分:0)

当您在wordpress action hook的回调参数中添加函数而不是字符串时,会发生此警告。
例如:
这将引起警告:

add_action("wp_enqueue_scripts",somefunction());

但这不会:

add_action("wp_enqueue_scripts","somefunction");

或者, 如果未包含包含该“ somefunction”的文件,也会发生此警告。

这些是我重现警告的情况。