我刚刚更新到WordPress 4.3,似乎有些东西坏了。
我收到此错误,显示在我的页面上:
注意:从版本4.3.0开始,不推荐使用WP_Widget的被调用构造函数方法!请改用
__construct()
。位于第3457行的/mnt/stor13-wc1-ord1/754452/www.eden-festival.com/web/content/securewp/wp-includes/functions.php
是否有需要修复的东西?
答案 0 :(得分:38)
由于php 7不再支持旧的php 4对象构造并替换为sudo ln -sf /usr/lib/jvm/java-7-oracle/jre/lib/security /usr/lib/jvm/java-7-oracle/lib/security
Wordpress开发人员创建了一条通知消息,因此插件开发人员将改变其插件的工作方式,以便它可以在下一个运行php版本和php 4很久以前就已经死了没有理由使用这种对象构造。
选项1 - 不会升级到较新的php版本
添加
__construct()
到你的functions.php文件中,它会忽略这些通知。
选项2 - 可能升级到php 7 /更喜欢处理问题而非沉默
如果这是第三方插件,请注意如果您自己进行更改并且插件开发人员将发布更新,它将覆盖您的更改。联系插件开发人员来解决此问题将是最佳选择
找到有问题的插件并更改
add_filter('deprecated_constructor_trigger_error', '__return_false');
到
parent::WP_Widget
答案 1 :(得分:15)
我也得到了同样的错误我以这种方式修复了它
class Dokan_Category_Widget extends WP_Widget {
/**
* Constructor
*
* @return void
**/
public function __construct() {
$widget_ops = array( 'classname' => 'dokan-category-menu', 'description' => __( 'Dokan product category menu', 'dokan' ) );
$this->WP_Widget( 'dokan-category-menu', 'Dokan: Product Category', $widget_ops );
}
}
因为以这种方式调用构造函数的方式在php 7中已弃用,所以我将调用方式替换为$this->WP_Widget()
1>的parent::__construct()
class Dokan_Category_Widget extends WP_Widget {
/**
* Constructor
*
* @return void
**/
public function __construct() {
$widget_ops = array( 'classname' => 'dokan-category-menu', 'description' => __( 'Dokan product category menu', 'dokan' ) );
//$this->WP_Widget( 'dokan-category-menu', 'Dokan: Product Category', $widget_ops );
parent::__construct('dokan-category-menu', 'Dokan: Product Category', $widget_ops );
}
}
答案 2 :(得分:2)
我猜你使用的是一些在wordpress更新后没有更新的插件,并且有一些像unsafeCoerce
这样的代码。你应该更新该插件或停用它直到它被更新。
答案 3 :(得分:0)
声明一个函数然后调用父构造函数为我解决了这个问题。
class myClass extends WP_Widget {
function __construct(){
parent::__construct(...) // calls constructor from WP_Widget class
}
}
答案 4 :(得分:0)
这是一种警告,您可以通过在站点根目录的wp-config.php
文件中添加一行来隐藏错误
define('WP_DEBUG',false);
答案 5 :(得分:-3)
我遇到了这个问题,通过在/wp-includes/functions.php中将'true'语句更改为'false',它禁用了错误。
if(WP_DEBUG&& apply_filters( 'deprecated_constructor_trigger_error',true)){