添加_菜单_页面权限-我做错了什么?

时间:2012-05-03 作者:Kevin

我正在运行Wordpress 3.3.2的新安装,唯一启用的插件是我正在开发的插件,但我似乎无法通过中的权限问题add_menu_page. 除了使用匿名函数而不是命名函数之外,我遵循documentation 几乎完全正确。

我的插件来源:

<?php
/*
Plugin Name: Some Plugin
*/

add_action(\'admin_init\', function() {
    add_menu_page(\'Some Page\', \'Some Page\', \'manage_options\', \'some-slug\', function() {
        echo \'Hello, world!\';
    });
});

?>
菜单链接显示在菜单底部,但不是“你好,世界!”,我明白了:

您没有足够的权限访问此页面。

我也试过使用administrator 替代能力manage_options, 但结果是一样的。

我做错了什么?

2 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

你想要admin_menu 钩子,而不是admin_init.

此外,您不应该使用匿名函数。相反,请使用:

function wpse51004_add_menu_page() {
    add_menu_page(\'Some Page\', \'Some Page\', \'manage_options\', \'some-slug\', \'wpse51004_some_page_callback\');
};
add_action(\'admin_menu\', \'wpse51004_add_menu_page\');

function wpse51004_some_page_callback() {
        echo \'Hello, world!\';
    }

SO网友:hsn0331

你必须使用admin_menu 而不是admin_init, 这就是为什么你会出错。

my_plugin_add_menu_page(){
    add_menu_page(\'Some Page\', \'Some Page\', \'manage_options\', \'some-slug\', \'my_plugin_some_page_callback\');
}
add_action(\'admin_menu\', \'my_plugin_some_page_callback\');

function my_plugin_some_page_callback() {
    echo \'Hello, world!\';
}
您也可以使用匿名function 但组织函数名称更为简洁。

结束

相关推荐

Recommended File Permissions

嘿,伙计们,我花了很长时间试图解决这个问题。我想知道WordPress中的文件权限应该是什么样子in order to use the autoupdate feature. 到目前为止,我的wordpress安装程序一直在询问我的FTP信息,我不想使用那种升级/安装方法,我想使用纯/直接PHP。某些上下文:Web服务器和php fcgi守护程序运行为www-data:www-data</wordpress安装位于/home/blaenk/sites/domain.tld/</首先,我read