WP_Widget_PostViews has a deprecated constructor报错问题存在于低版本的wp-postviews插件中,新版本的wp-postviews插件已经修复,如果有遇到该问题的博主更新到最新版本即可,本篇内容仅作记录。如果插件经过二次修改,觉得升级又要改一次比较麻烦,可以根据下面的方法修复。安装在较高版本php中的wordpress网站使用旧版本的wp-postviews插件在debug调试模式下会出现以下报错信息:
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; WP_Widget_PostViews has a deprecated constructor in ***** /wp-content/plugins/wp-postviews/wp-postviews.php on line 670
Invalid comment status.
出现该问题的原因很简单,就是在较高的php版本中,构造函数的名称不能和类名称相同,而wp-postviews插件的某个类名称和构造函数名称冲突了,解决方法是把函数名称改为__construct
即可。
操作步骤:
1、编辑插件的wp-postviews.php文件,找到以下代码:
1 2 3 4 5 6 | class WP_Widget_PostViews extends WP_Widget { // Constructor function WP_Widget_PostViews() { $widget_ops = array('description' => __('WP-PostViews views statistics', 'wp-postviews')); $this->WP_Widget('views', __('Views', 'wp-postviews'), $widget_ops); } |
PS:可以看出class后面的名称和function后面的名称相同
2、把上面代码中的WP_Widget_PostViews()
修改为__construct()
即可,修改后的代码如下:
1 2 3 4 5 6 | class WP_Widget_PostViews extends WP_Widget { // Constructor function __construct() { $widget_ops = array('description' => __('WP-PostViews views statistics', 'wp-postviews')); $this->WP_Widget('views', __('Views', 'wp-postviews'), $widget_ops); } |
3、修改完成后,保存文件即可。