因此,为了您的信息(基于add\\u menu\\u页面),我建议您查看wordpress中add\\u menu\\u页面的codexhttp://codex.wordpress.org/Function_Reference/add_menu_page 如果查看add\\u menu\\u page的参数,第三个是$capability
只需在代码下面更改即可manage_options
到manage_wpse_173073
(或您想要的任何名称),只需将该功能分配给您的自定义角色即可。
add_action( \'admin_menu\', \'register_my_custom_menu_page\' );
function register_my_custom_menu_page(){
add_menu_page( \'custom menu title\', \'custom menu\', \'manage_options\', \'custompage\', \'my_custom_menu_page\', plugins_url( \'myplugin/images/icon.png\' ), 6 );
}
function my_custom_menu_page(){
echo "Admin Page Test";
}
因此,我将add\\u menu\\u页面更改为自定义功能(manage\\u wpse\\u 173073)
add_menu_page( \'custom menu title\', \'custom menu\', \'manage_wpse_173073\', \'custompage\', \'my_custom_menu_page\', plugins_url( \'myplugin/images/icon.png\' ), 6 );
然后,一旦我更改了这些功能,我们需要将这些功能分配给自定义角色或选定角色。
http://codex.wordpress.org/Function_Reference/add_capfunction add_menu_caps() {
// gets the custom role
$role = get_role( \'your custom role\' );
$role->add_cap( \'manage_wpse_173073\' );
}
add_action( \'admin_init\', \'add_menu_caps\');
上面的代码尚未测试,但我希望它在我的情况下可以工作,我在一个月内尝试了相同的行为:)
EDITED:针对您的情况,创建一个新的自定义角色,然后分配上述功能
function add_roles_on_init() {
add_role( \'custom_role\', \'Custom Subscriber\', array( \'read\' => true, \'level_0\' => true,\'manage_wpse_173073\'=> true ) );
}
add_action(\'init\', \'add_roles_on_init\' );
确保每当用户在您的站点中注册时自己编写代码,然后为该用户分配自定义角色,仅此而已。如果该用户访问后端,那么他们可以看到您想要显示的任何菜单。
希望有帮助:)
谢谢