WordPress Multisite admin cleanup snippets
Snippets to remove unnecessary admin bar links and admin sidebar links.
Cleanup of admin sidebar:
The following snippet removes menu item Dashboard.
This also removes access to menu items for update core and upgrade network.
As a solution we add new menu items as sub items to settings menu, providing easy access to these two sites.
/*
* Customizing the network admin sidebar.
* Removes link to dashboard. Adds link to updates and upgrade network as settings submenu item
*/
function maksimer_customize_network_sidebar_menu() {
remove_menu_page( 'index.php' );
add_submenu_page( 'settings.php', __( 'Updates' ), __( 'Updates' ), 'manage_options', 'update-core.php' );
add_submenu_page( 'settings.php', __( 'Upgrade Network' ), __( 'Upgrade Network' ), 'manage_options', 'upgrade.php' );
}
add_action('network_admin_menu', 'maksimer_customize_network_sidebar_menu');
Cleanup of admin bar:
This snippet removes the following links from admin bar (top bar):
- My sites –> Network Admin –> Dashboard
- Edit site link (Backend)
- All sub menu items from My sites –> Site name
/*
* Manage the admin bar
*/
function maksimer_network_admin_bar() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu( 'network-admin-d' );
$wp_admin_bar->remove_menu( 'edit-site' );
// Array of blogs in network
$network_blogs = wp_get_sites();
foreach ( $network_blogs as $network_blog ) {
// Get blog id from array
$network_blog_id = $network_blog['blog_id'];
$wp_admin_bar->remove_menu( 'blog-'.$network_blog_id.'-d' ); // Dashboard
$wp_admin_bar->remove_menu( 'blog-'.$network_blog_id.'-c' ); // Manage Comments
$wp_admin_bar->remove_menu( 'blog-'.$network_blog_id.'-v' ); // View Site
$wp_admin_bar->remove_menu( 'blog-'.$network_blog_id.'-n' ); // New post
}
}
add_action( 'wp_before_admin_bar_render', 'maksimer_network_admin_bar' );