好吧,Eugene的答案适用于不处理自定义功能的插件。
<支持>http://codex.wordpress.org/Roles_and_Capabilities支持WordPress Plugin API 允许添加、删除和更改角色和功能。由于插件可能会改变角色和功能,因此本文只讨论默认插件。
因此,如果他的代码在没有检查功能的情况下工作,我们必须看看GravityForms是如何执行他的add_submenu_page
行动
为此,我们将整个插件文件夹放在一个好的代码编辑器(NotePad++、TextMate等)中,然后进行全局搜索并找到我们的东西。
// wp-content/plugins/gravityforms/gravityforms.php
// all parameters removed from the original code, except $page_title and $capability
add_submenu_page(
$parent_slug,
__("Help", "gravityforms"),
$menu_title,
$has_full_access ? "gform_full_access" : $min_cap,
$menu_slug,
$function
);
在我们看到之前还有几行:
$has_full_access = current_user_can("gform_full_access");
$min_cap = GFCommon::current_user_can_which(GFCommon::all_caps());
if(empty($min_cap))
$min_cap = "gform_full_access";
现在我们继续
Members 插件,顺便说一句GF可以识别,在编辑器角色的配置屏幕中,我们有以下内容
BUT NOTING THAT gform_full_access
不显示在此列表中。它必须通过插件界面手动添加。。。
之后,标记完全访问能力remove_submenu_page
按编辑器角色的预期工作。
所有子菜单的参考代码(记住第一个是最上面的菜单)。
function remove_menu_links() {
if( !current_user_can( \'manage_options\' ) ) {
// remove_submenu_page( \'gf_edit_forms\', \'gf_edit_forms\' );
// remove_submenu_page( \'gf_edit_forms\', \'gf_new_form\' );
// remove_submenu_page( \'gf_edit_forms\', \'gf_new_formf_help\' );
// remove_submenu_page( \'gf_edit_forms\', \'gf_entries\' );
// remove_submenu_page( \'gf_edit_forms\', \'gf_settings\' );
// remove_submenu_page( \'gf_edit_forms\', \'gf_export\' );
// remove_submenu_page( \'gf_edit_forms\', \'gf_update\' );
// remove_submenu_page( \'gf_edit_forms\', \'gf_addons\' );
remove_submenu_page( \'gf_edit_forms\', \'gf_help\' );
}
}
add_action( \'admin_menu\', \'remove_menu_links\', 9999 );
感兴趣的插件
Adminimize 这是一种在眨眼之间隐藏魔法的方法,完全是专业的。