菜单项绑定到功能。A.good overview can be found here. 例如,如果您不具备edit_posts
“Posts”菜单项不会显示。
菜单项如何绑定到功能。一般来说:如果您使用add_menu_page()
或add_submenu_page()
您必须分配一个功能,告诉WordPress哪些用户可以访问此页面并在菜单中看到它。
如果您想深入了解绑定到默认菜单项的功能,可以浏览源代码。
您还可以使用这个小脚本,它为您提供了当前菜单和附带功能的概述。它只应用于开发目的,当然,它可以改进,但您得到了一般的想法:
add_action( \'in_admin_footer\', function() {
global $menu, $submenu;
echo \'<p>Menu:</p><table class="table widefat">\';
echo \'<tr><th>Name</th><th>Slug</th><th>Capability</th>\';
foreach ( $menu as $key => $item ) {
echo \'<tr><td>\' . esc_html( $item[0] ) . \'</td><td>\' . esc_html( $item[2] ) . \'</td><td><td>\' . esc_html( $item[1] ) . \'</td><td></tr>\';
}
echo \'</table>\';
echo \'<p>Submenu:</p><table class="table widefat">\';
echo \'<tr><th>Name</th><th>Slug</th><th>Capability</th>\';
foreach ( $submenu as $index => $subsub ) {
foreach ( $subsub as $key => $item ) {
echo \'<tr><td>\' . esc_html( $item[0] ) . \'</td><td>\' . esc_html( $item[2] ) . \'</td><td><td>\' . esc_html( $item[1] ) . \'</td><td></tr>\';
}
}
echo \'</table>\';
});
因此,如果您创建一个新的用户角色,您可以为其分配功能,并通过这些功能,您可以决定特定的用户角色是否应该看到“编辑帖子”菜单项。您可以在中找到添加用户角色和功能的详细说明
WordPress Codex.
如果要删除特定菜单项,但仍要授予用户主体功能,可以使用remove_menu_page()
. 因此,您需要知道要删除的菜单项的slug。此示例将从菜单中删除“插件”项:
add_action( \'admin_menu\', function(){
remove_menu_page( \'plugins.php\' );
});