“尝试修改非对象的属性”警告

时间:2014-06-26 作者:Iurie

**This question is outdated! **

我使用bellow函数禁用插件更新。它可以工作,因为我使用的是这个插件的旧版本,它并没有向我显示存在新版本,但是,我在第2行得到警告:尝试修改非对象的属性。如何修复此问题?

function my_filter_plugin_updates( $value ) {
   unset( $value->response[\'duplicator/duplicator.php\'] ); //Duplicator
   return $value;
}

add_filter( \'site_transient_update_plugins\', \'my_filter_plugin_updates\' );

UPDATE

我不是PHP程序员,所以我不知道我所做的是否正确,但这是可行的-没有错误,没有警告,没有插件更新:

// Disable plugin update
function my_filter_plugin_updates() {
   $value = new StdClass;
   unset( $value->response[\'duplicator/duplicator.php\'] ); //Duplicator
   return $value;
}

add_filter( \'site_transient_update_plugins\', \'my_filter_plugin_updates\' );

2 个回复
SO网友:Milo

一些简单的php,在尝试取消设置之前检查它是否已设置。

function my_filter_plugin_updates( $value ) {
   if( isset( $value->response[\'duplicator/duplicator.php\'] ) )
       unset( $value->response[\'duplicator/duplicator.php\'] ); //Duplicator

   return $value;
}
add_filter( \'site_transient_update_plugins\', \'my_filter_plugin_updates\' );

SO网友:tuenti

这可能很晚,但如果指定一个对象的新实例,则会覆盖适当的值$value

结束

相关推荐

private functions in plugins

我开发了两个插件,其中一个功能相同(相同的名称,相同的功能)。当试图激活两个插件时,Wordpress会抛出一个错误,因为它不允许我以相同的名称定义函数两次。有没有一种方法可以使这个函数只对插件私有,而不使用面向对象编程,也不简单地重命名函数?我不想使用OOP,因为我首先要学习它。此外,我不想重命名该函数,因为我可能也想在其他插件中使用它,而重命名感觉不太合适。