将自定义角色绑定到管理页面

时间:2014-12-23 作者:silvercover

我制作了一个管理页面,显示了一些可通过WP admin访问的记录www.xyz.com/wp-admin/admin.php?page=show-records-handle. 如何定义绑定到此页面的新用户角色?

因此,具有此角色的用户可以看到该页面,否则会显示错误消息。

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

因此,为了您的信息(基于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_optionsmanage_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_cap

function 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\' );
确保每当用户在您的站点中注册时自己编写代码,然后为该用户分配自定义角色,仅此而已。如果该用户访问后端,那么他们可以看到您想要显示的任何菜单。

希望有帮助:)

谢谢

结束

相关推荐

Admin_head-post.php仅在发布/更新后才起作用

我用一些管理后端创建了一个自定义帖子类型。目前我正在使用钩子调用脚本admin_head-post.php 但这似乎只有在自定义帖子类型创建(发布时)或更新后才会触发。在特定的管理页面上运行的更好的钩子是什么,但在最初创建新帖子以及更新/发布等时又是什么?