WordPress出现Warning: call_user_func_array() expects parameter 错误修复

1、 测试环境 
wordpress4.7
Php7.01
2、产生背景 
在添加wp评论插入emoji表情时,在functions.php中修改了原路径,当评论插入表情时,后台显示以上错误。
3、原因分析
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'importFile' not found or invalid function name in /....../wp-includes/plugin.php on line 395
(1)无效返回值 importFile函数没有找到
(2)动态方法调用
call_user_func

namespace Foo;  
class F {  
    public function showAge ($age) {  
        return $age + 100;  
    }  
}  
call_user_func(__NAMESPACE__ . '\F::showAge',23);

call_user_func() expects parameter 1 to be a valid callback, non-static method Foo\F::showAge() should not be called statically
解释一下: 这个函数的第一个参数必须是 有效的回调函数, 非静态的方法showAge() 是不允许调用的.
需要的解决方案是:

namespace Foo;  
class F {  
    public static function showName ($name) {  
        return strtoupper($name);  
    }  
 
    public function showAge ($age) {  
        return $age + 100;  
    }  
}  
$f = new F();   
echo call_user_func(array($f, 'showAge'),23);

对于这样的动态函数的调用,必须提前进行对象实例化,
然后将实例化之后的对象传入函数作为第一个参数.
call_user_func_array :

namespace Foo;  
class F {  
    public static function showName ($name) {  
        return strtoupper($name);  
    }  
 
    public function showAge ($age) {  
        return $age + 100;  
    }  
}  
$f = new F();   
echo call_user_func_array(array($f, 'showAge'),array(23));

记住一点,call_user_func_array 传递的第二个参数必须是数组,
call_user_func 传递的第二个参数可能是数组.如果是多个参数的话,还是需要以列表的形式列出.

(3)我们不能修改原文件,采用下策:
屏蔽:php升级到5.4以后导致解决的办法就是在 php的配置文件php.ini中找到display_errors = Off(把on 改为Off)
(4)wordpress 中可以使用 @ini_set('display_errors','Off');关掉错误输出。

赞(0)
分享到: 更多 (0)
广告位招租了啦!!!快来联系
此处应有广告

评论 抢沙发

评论前必须登录!

  注册



本站承接:网站制作相关业务 WORDPRESS相关业务

联系QQ:87614289 Email:waizhuti@qq.com
通知:歪主题网站正式启用新域名,新的域名为歪主题的全拼:www.waizhuti.com 请大家收藏!

最近客服不定时上线,有需要联系客服的同学请忽视在线情况,直接留言,客服上线将第一时间联系您
x

觉得此资源很适合你的心情,那么联系客服购买吧~~

支付宝扫一扫付款

微信扫一扫付款

QQ扫一扫付款