我使用以下命令删除“编辑器”的某些菜单
function remove_menus () {
global $menu;
if( (current_user_can(\'install_themes\')) ) {
$restricted = array(); } // check if admin and hide nothing
else { // for all other users
// Remove Tools, Appearance, Links, Plugins, Comments,
if ($current_user->user_level < 10)
$restricted = array(__(\'Posts\'), __(\'Links\'), __(\'Appearance\'), __(\'Tools\'), __(\'Settings\'), __(\'Comments\'), __(\'Plugins\')); // this removes a lot! Just delete the ones you want to keep showing
end ($menu);
while (prev($menu)){
$value = explode(\' \',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
}
}
}
add_action(\'admin_menu\', \'remove_menus\');
除非客户要求删除以下内容,否则此操作有效:
在仪表板上,删除“添加新页面”。
在“页面”选项卡下,删除“添加新页面”:
这可能吗?
SO网友:shabushabu
请注意,再也没有必要乱弄全局菜单了。自WP 3.1(或其左右版本)以来,我们有两个新功能可供使用,您可以从菜单中删除任何页面:
remove_submenu_page( $menu_slug, $submenu_slug );
remove_menu_page( $menu_slug );
示例用法如下:
remove_submenu_page( \'edit.php\', \'post-new.php\' );
要在不使用插件的情况下限制对页面的访问(视情况而定,这可能是过度使用),您可以使用$pagenow全局:
function my_restrict_access() {
global $pagenow;
if( $pagenow == \'post-new.php\' && ! current_user_can( \'publish_posts\' ) )
wp_redirect( admin_url() );
}
add_action( \'admin_init\', \'my_restrict_access\', 0 );
SO网友:Brooke.
我同意m0r7if3r,您需要使用角色编辑插件,这样用户就不能添加/编辑页面了。完成后,您可以执行类似操作来隐藏菜单。
add_action( \'admin_menu\' , \'wpse_47731_remove_admin_menus\',11 );
add_action( \'wp_before_admin_bar_render\', \'wpse_47731_remove_admin_bar_links\' );
add_action(\'admin_head\',\'wpse_47731_hide_admin_buttons\');
function wpse_47731_remove_admin_menus() {
if (!current_user_can( \'edit_pages\' ) ) {
//pages
global $menu;
global $submenu;
unset( $menu[75] );
unset($submenu[\'edit.php?post_type=page\'][10][1]);
}
else {
return;
}
}
function wpse_47731__hide_admin_buttons(){
global $current_screen;
if (!current_user_can( \'edit_pages\' )) {
if ( ($current_screen->id == \'edit-page\' ) || ( $current_screen->id == \'page\'))
{
echo \'<style>.add-new-h2,#add_gform{display:none;}</style>\';
}
else if( ($current_screen->id == \'edit-post\' ) || ( $current_screen->id == \'post\'))
{
echo \'<style>#add_gform {display:none;}</style>\';
}
else{
return;
}
}
}
function wpse_47731_remove_admin_bar_links() {
if (!current_user_can( \'edit_pages\' ) ) {
global $wp_admin_bar;
$wp_admin_bar->remove_menu(\'new-page\');
}
}
这是我使用的基本代码,我假设您可能已经通过函数连接到这些代码中,但您必须稍微使用它。当我最初这样做的时候,我在谷歌上找到了一篇非常好的文章,解释了这一切是如何工作的,但我丢失了书签,但如果我找到了,我一定会发帖的。
这是贾斯汀·塔德洛克的帖子(非常好)http://justintadlock.com/archives/2011/06/13/removing-menu-pages-from-the-wordpress-admin