WP_Widget_PostViews has a deprecated constructor 报错解决

时间:2022-05-05
本文章向大家介绍WP_Widget_PostViews has a deprecated constructor 报错解决,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

今天在调试 WordPress 的时候,打开了 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.

百度了一把,发现是函数和类构造名称冲突了,解决办法如下:

编辑 wp-postviews.php 这个文件,定位到 670 行如下代码:

 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);
	}

很明显,function 名称和 class 冲突了,所以我们只要把 function 名称改成 __construct 即可:

 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);
	}

保存后这个错误就解决了,如果遇到类似的报错,也可以参考解决了。