Title: Remove admin menu elements
Last modified: January 15, 2022

---

# Remove admin menu elements

 *  Resolved [Giovanni Castellotti](https://wordpress.org/support/users/giovannicas/)
 * (@giovannicas)
 * [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/)
 * Hello everyone,
    I’m trying to remove some admin menu elements from the backend
   of my wp site. I used this code:
 *     ```
       if( !current_user_can('admin_role') ) {
       	function remove_menu_elements() {
       		remove_menu_page('bricks');
       		remove_menu_page('ivory-search');
       		remove_menu_page('complianz');
       		remove_menu_page('themes.php');
       		remove_menu_page('fonts-plugin');
       		remove_menu_page('plugins.php');
       		remove_menu_page('tools.php');
       		remove_menu_page('options-general.php');
       		remove_menu_page('wptelegram');
       		remove_menu_page('bnfw_notification');
       		remove_menu_page('pods');
       		remove_menu_page('fpsm');
       		remove_menu_page('roles');
       		remove_menu_page('one-user-avatar');
       		remove_menu_page('googlesitekit-splash');
       }
       add_action( 'admin_init', 'remove_menu_elements' );
       }
       ```
   
 * This code is working for most of the elements, but some are not removed. Like
   the Plugin “Members”, or “Customize WordPress Emails and Alerts – Better Notifications
   for WP”, and some more. What am I doing wrong? Why are those ones not being removed?
   Is there some way to achieve the result? Thanks a lot!

Viewing 12 replies - 1 through 12 (of 12 total)

 *  [WIPIT](https://wordpress.org/support/users/wipit/)
 * (@wipit)
 * [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/#post-15256169)
 * Hi,
 * For the plugins you need to edit the coding in plugins maps.
 *  Thread Starter [Giovanni Castellotti](https://wordpress.org/support/users/giovannicas/)
 * (@giovannicas)
 * [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/#post-15256254)
 * Hi [@wipit](https://wordpress.org/support/users/wipit/),
    thanks for the response.
   That would be quite difficult and time consuming. I just want to hide the plugin-
   specific setting appearing in the backend wp admin menu. With some plugins this
   is working, and also with the WordPress core menu admin elements (such as Settings,
   Appearance, Tools etc.). For some plugins it is working, like “Ivory Search” 
   for example, etc.
 *  [Dekadinious](https://wordpress.org/support/users/dekadinious/)
 * (@dekadinious)
 * [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/#post-15256638)
 * Try the “admin_menu” hook instead of “admin_init”? From “remove_menu_page” code
   reference:
 * “This function should be called on the admin_menu action hook. Calling it elsewhere
   might cause issues: either the function is not defined or the global $menu variable
   used but this function is not yet declared.”
 *  Thread Starter [Giovanni Castellotti](https://wordpress.org/support/users/giovannicas/)
 * (@giovannicas)
 * [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/#post-15257157)
 * Hi [@dekadinious](https://wordpress.org/support/users/dekadinious/),
    this does
   not work either. This was my first solution, I changed it to “admin_init” after
   noticing this strange behaviour. The admin_menu hook is actually worse, because
   it allows some other plugins to stay, like “Complianz” for example, and another
   one to set local avatars for the users. Seems like it needs an even more “strong”
   hook, or one which loades before (I don’t know much about PHP, sorry if I’m using
   the wrong terms).
 *  [Dekadinious](https://wordpress.org/support/users/dekadinious/)
 * (@dekadinious)
 * [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/#post-15257208)
 * Try changing the priority on the hook to something like 99999 to see if that 
   makes any difference? In admin_menu. I don’t know if it should. Are you sure 
   you are using the correct slugs?
 *  Thread Starter [Giovanni Castellotti](https://wordpress.org/support/users/giovannicas/)
 * (@giovannicas)
 * [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/#post-15257873)
 * [@dekadinious](https://wordpress.org/support/users/dekadinious/) not working 
   either.
    I think the slugs are correct. I used the same format for all the plugins,
   and with most of them is working. This is the last part of the link of the “Members”
   plugin, where there is the slug.
 * /wp-admin/admin.php?page=roles
 * So “roles” is the slug to put in there. I also tried putting “admin.php?page=
   roles”, but the result is not changing. Maybe there is another way to hide it?
 *  [Dekadinious](https://wordpress.org/support/users/dekadinious/)
 * (@dekadinious)
 * [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/#post-15257978)
 * Are they all main menu pages and not sub menu pages? I did a quick search from
   my phone on the code base of Members (is it from MemberPress?) on GitHub. Try
   create_roles instead?
 * Only if it’s the same plugin of course.
 *  Thread Starter [Giovanni Castellotti](https://wordpress.org/support/users/giovannicas/)
 * (@giovannicas)
 * [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/#post-15258859)
 * [@dekadinious](https://wordpress.org/support/users/dekadinious/),
    yes, that 
   is the plugin ([https://it.wordpress.org/plugins/members/](https://it.wordpress.org/plugins/members/))
   I tried your suggestion, but is not changing the result, I still see the “Members”
   menu element. They are all main menu pages, they contain submenu pages, but I’m
   targeting the menu page, not the sub menu. In the other cases, by targeting the
   menu pages, also the sub menu pages are hidden, and that’s what I want. I can’t
   understand why this is working with some plugins, and not with others.
 *  [Dekadinious](https://wordpress.org/support/users/dekadinious/)
 * (@dekadinious)
 * [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/#post-15259199)
 * Just to be sure I am understanding correctly: This is all for sidebar menu pages,
   not admin bar (on the top)?
 *  Thread Starter [Giovanni Castellotti](https://wordpress.org/support/users/giovannicas/)
 * (@giovannicas)
 * [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/#post-15259454)
 * Yes [@dekadinious](https://wordpress.org/support/users/dekadinious/) exactly.
   
   The one circled in red in this photo (sorry, I’m outside, so I used the mobile
   phone to take the screen, but you get the idea).
 * > [WordPress admin](https://imgur.com/a/3o5Jz62)
 * If you want later I can also share a screenshot of a non-admin account, in which
   you can see that, for example, the menu element below “Members” (“Avatars”) gets
   removed by the code provided.
 *  [Dekadinious](https://wordpress.org/support/users/dekadinious/)
 * (@dekadinious)
 * [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/#post-15259549)
 * Ok, so I was too quick when looking through the code on Github last time. I just
   looked at the wrong parameter. If you see on this line:
 * [https://github.com/caseproof/members/blob/c6556a93def04d0a6bbf65bad57a2ef3f5e1c729/admin/class-role-new.php#L111](https://github.com/caseproof/members/blob/c6556a93def04d0a6bbf65bad57a2ef3f5e1c729/admin/class-role-new.php#L111)
 * You can see that the slug is actually not “roles” even though that is the URL
   in WordPress. The slug is “members”. I did this, and it worked:
 *     ```
       function remove_pages_in_admin()
       {
           remove_menu_page('members');
       }
       add_action('admin_menu', 'remove_pages_in_admin');
       ```
   
 * So you should use the “admin_menu” hook and just find the correct slug. Just 
   go to the Github repository of each plugin and type in “add_menu_page” and look
   at the fourth parameter. If the plugin does not have a Github repository, just
   open Notepad++ or VSCode or something and use “Find in files” for the plugin 
   folder you can download from the plugin repository 🙂
 * It should work if you find all the slugs! 🙂
 * PS: OR I think you can just dump the whole menu to find all slugs.
 *     ```
       function remove_pages_in_admin()
       {
   
           global $menu;
   
           echo "<div style='margin-left: 200px; margin-top: 50px;'>";
   
           foreach ($menu as $val) {
               echo $val[2] . "<br>";
           }
   
           remove_menu_page('members');
   
           echo "<br>";
   
           foreach ($menu as $val) {
               echo $val[2] . "<br>";
           }
   
           echo "</div>";
       }
       add_action('admin_menu', 'remove_pages_in_admin');
       ```
   
 * This is extremely ugly, but will first print out a list of all menu slugs in 
   the admin dashboard. Then it will remove “members” and print the list again. 
   You will see “members” in the first list, but not the second. This way you can
   remove all you don’t want to have 🙂
 *  Thread Starter [Giovanni Castellotti](https://wordpress.org/support/users/giovannicas/)
 * (@giovannicas)
 * [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/#post-15261189)
 * Thx [@dekadinious](https://wordpress.org/support/users/dekadinious/) that’s working!
   
   Sorry for the disturb. I’m now doing what you suggested! Thanks again for your
   help, I appreciate it!

Viewing 12 replies - 1 through 12 (of 12 total)

The topic ‘Remove admin menu elements’ is closed to new replies.

 * In: [Developing with WordPress](https://wordpress.org/support/forum/wp-advanced/)
 * 12 replies
 * 3 participants
 * Last reply from: [Giovanni Castellotti](https://wordpress.org/support/users/giovannicas/)
 * Last activity: [4 years, 4 months ago](https://wordpress.org/support/topic/remove-admin-menu-elements/#post-15261189)
 * Status: resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
