wordpress插件wp-postviews报错has a deprecated constructor的解决方法
网站文章 2026-09-21 06:31:22 4 0

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、修改完成后,保存文件即可。

文章说明
本文标签:
©版权声明
本站提供的一切软件、教程和游戏辅助仅限用于娱乐和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集,版权争议与本站无关。如有侵权请邮件与我们联系处理。敬请谅解!6594404@qq.com