高级访问管理器中出现无法访问空属性错误

时间:2013-07-10 作者:rfc1484

如回复中所述this post 高级访问管理器的作者已更改路径中当前的getCurrentUserRole函数/wp-content/plugins/advanced_access_manager/module 使用此新代码:

function getCurrentUserRole() {
    if (is_object($this->data) && isset($this->data->{$this->cap_key})) {
       $result = $this->data->{$this->cap_key};
    } else {
       $result = array();
    }    
    return $result;
}
但我在尝试通过www.foosite.com/wp-admin. 以下是apache日志错误消息:

PHP致命错误:无法访问/var/www/foosite/wp content/plugins/advanced access manager/module/class-module\\u user中的空属性。php第29行

行错误与if语句相对应,因此我尝试使用isset:

function getCurrentUserRole() {
    if (isset($this->data) && is_object($this->data) && is_array($this->data->{$this->cap_key})) {
        $result = array_keys($this->data->{$this->cap_key});
    } else {
        $result = array();
    }
    return $result;
}
不幸的是,错误保持不变。

有什么建议吗?

1 个回复
SO网友:rfc1484

以下是我提出的解决方案,它现在可以正常工作:

function getCurrentUserRole() {
  if (isset($this->data) && isset($this->data->{$this->cap_key}) && is_object($this->data) && is_array($this->data->{$this->cap_key}) ) {
     $result = array_keys($this->data->{$this->cap_key});
  } else {
     $result = array();
  }

  return $result;
}

结束

相关推荐

没有显示自定义帖子模板文件,而是始终显示404.php

我完全弄糊涂了,想用我自己的模板文件来定制帖子类型,当然我在这里或抄本中读到了这一切(http://codex.wordpress.org/Post_Types#Custom_Post_Type_Templates )我还发现有同样问题的用户(https://stackoverflow.com/questions/14461285/what-would-make-a-custom-post-type-template-not-show-up ), 当然,我已经更新了永久链接页面(将设置>保存>