博客wordpress说在的环境升级到php7以后侧边栏出现了错误,打开wordpress调试模式及php错误提示以后后,发现给出了如下提示:
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Translation_Entry has a deprecated constructor in XXX.php on line 73
这个报错的原因是 PHP7 不再支持与类名相同的构造方法,构造方法统一使用 __construct(), 比如下面的写法 PHP7 就会报这个错误。
function qq_list(){ $widget_ops = array('classname'=>'set_contact','description'=> __('QQmail Subscribe','bb10')); $this->WP_Widget(false,__('QQmail Subscribe','bb10'),$widget_ops); }
实际上wordpress官方早已经说明不要使用这种方法早在很久以前,wordpress官方主题以及系统中使用了适应php7的标准写法,但是国内很多主题开发者均没有按照要求修改!为了解决这个问题,对代码不是太熟悉的我一直在找解决办法,结果发现国内几乎所有的主题基本都有这个问题,很明显都是抄抄抄的!
我们使用__construct()统一构造方法解决同类名错误:
function __construct(){ $widget_ops = array('description' => __('QQmail Subscribe','bb10')); parent::__construct('qq_list' ,__('QQmail Subscribe','bb10'), $widget_ops); }
通过php标准写法,修改后,php7及以上版本就不会报这个错误了!
本文摘自http://www.luoxiao123.cn/methods-with-the-same-name.html
声明:本文采用 BY-NC-SA 协议进行授权,如无注明均为原创,转载请注明转自 你好!刘
本文地址:WordPress放弃WP_Widget()构造函数,请用__construct()替代
本文地址:WordPress放弃WP_Widget()构造函数,请用__construct()替代
发表评论