Support » Networking WordPress » Hide “My Site” function on the admin bar and under the dashboard

  • Resolved hectorcchan

    (@hectorcchan)


    Hi,

    After created some sub sites, I found that the sub site’s admin can go to “Main Site” panel through “My Site”. I want to keep secret about my main site setting. Do you guys know how to hide the main site column under dashboard and toolbar(admin bar)?

    I’ve searched a lot of information but I can’t find any ways to do it at the same time. I just found a code to hide “My Site” under the dashboard:

    function adjust_the_wp_menu() {
        $page = remove_submenu_page( 'index.php', 'my-sites.php' );
    }
    add_action( 'admin_menu', 'adjust_the_wp_menu', 999 );

    The code works for me, but the code also hides “My Site” when I log in to Keymaster(Network Admin) account. I just want to hide “My Site” to all admin except Network Admin. Thanks

Viewing 3 replies - 1 through 3 (of 3 total)
  • corrinarusso

    (@corrinarusso)

    In order to provide scale, and better granularity for your “other Admins”, I would suggest using a Role based plugin. It’ll work out better in the long right to implement a strong solution early on:

    https://en-ca.wordpress.org/plugins/members/
    or,
    https://en-ca.wordpress.org/plugins/user-role-editor/

    Thread Starter hectorcchan

    (@hectorcchan)

    @corrinarusso

    Thanks for your reply, they are awesome tools to limit other functions like post management and media uploads. But they seem not to be limited of “My Site”.

    Thanks for your recommendation, I’ll opt the plugin to manage other stuffs.

    Thread Starter hectorcchan

    (@hectorcchan)

    I spent couple of days and finally got the answer. I will share the solution below to help others who may get the same difficulty:

    p.s. This is not the perfect solution to solve the problem which mentioned on the topic because the solution also hides the columns when you are in super admin account. You need to enter the URL manually when you want to edit “My Sites”.

    How to remove “My Sites” under the dashboard:
    Location: wp-admin/includes/plugin.php

    function adjust_the_wp_menu() {
        $page = remove_submenu_page( 'index.php', 'my-sites.php' );
    }
    add_action( 'admin_menu', 'adjust_the_wp_menu', 999 );

    How to remove “My Sites” on the admin bar:
    Location: wp-includes/functions.php

    // remove links/menus from the admin bar
    function mytheme_admin_bar_render() {
    	global $wp_admin_bar;
    	$wp_admin_bar->remove_menu('my-sites');
    }
    add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_render' );

    Bear in mind that the id “My Sites” may be different. Some may show “my-blogs”. You should check your own id via admin-bar.php

Viewing 3 replies - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.