无法访问自定义插件后端

时间:2015-03-02 作者:Sam

所以,我刚刚创建了一个新插件,并添加了功能、新角色、将它们链接在一起等等。。等但由于某些原因,我无法访问自己的后端。

错误消息是通用消息

You do not have sufficient permissions to access this page.
在后端创建菜单的代码

add_menu_page(
    \'FOO Profile\',                // Link Text
    \'Manage your FOO profile\',    // Title
    \'foo-profile\',                // Capability (rights)
    \'foo-profile\',                // Slug
    [$this, \'renderFooProfile\']   // Callback for Link
);
我可以在管理区域内查看此链接。除此之外,我还进行了以下检查:

var_dump(current_user_can(\'foo-profile\')) => int(1)
现在,单击链接后,我会收到上面提到的错误消息。

渲染是一个简单的hello-world回声,因此我怀疑是否会在那里发现错误:S

public function renderFooProfile() { echo "Hello World"; }
任何关于我应该去哪里看的建议都将不胜感激。

全班要点>https://gist.github.com/anonymous/b4f69e203630f447677b

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

您正在使用admin_init 挂钩以添加菜单-使用admin_menu 相反

init钩子运行得足够早wp-admin/menu.php 将其添加到侧栏菜单,但不用于加载插件页面wp-admin/admin.php

换句话说,当您实际尝试加载插件页面时,您的菜单代码没有启动,WordPress失败,出现了一个相当普遍的错误。

结束

相关推荐

未定义的偏移量:1067行的>[...]/wp-includes/capabilities.php中的0

嘿,我在我的localhost设置中得到了这个错误消息,但只有在启用Genesis框架的情况下;WordPress二十一行。当我想创建一个新帖子时,就会发生这种情况。如果我刷新页面,错误会重复,但帖子本身会被创建,一切似乎都很好。有人知道这是什么原因吗?Notice: Undefined offset: 0 in /var/www/secret/htdocs/wp-includes/capabilities.php on line 1067 Notice: Undefined offset: 0