Menu Close
    Hire us Request quote Reading list Switch to dark mode

    How to add menu in WordPress admin panel

    Menu in WordPress admin panel – In this post we see how we can add custom menu to admin sidebar. Sometimes when we work with plugins or theme and we need to show some features or any information in admin page then we can use this code snippet to create the same.

    As we know WordPress provide hook using which we can easily add custom admin menu. So, for this we’ll use ‘admin_menu’ hook and add action to this hook

    1. Creating menu –

    Add this code in functions.php file of your plugin or theme.


    In above line of code, first parameter is the hook we discuss about, Second parameter is name of callback function. In callback function you have to write what you want to alter in admin menu.


    As you can see in custom_menu() function I just used add_menu_page(). This function allow you to create a menu in admin sidebar and map that menu to a page.


    In custom_menu() function

    • First parameter is page title. the title tag of the page when the menu is selected..
    • Second parameter is menu title. The text to be used for menu title.
    • Third one is capability, The capability required for this menu to be displayed to the user. You can find a list of all WordPress capabilities here –
    • Fourth parameter is menu slug, which is used for creating page URL. Keep this unique.
    • Fifth parameter is page callback function. The function to be called to output the content for this page.
    • Sixth parameter is for icon, either you can provide a URL of image or you can choose predefined WordPress icons.



    Reference –



    Still have any issue feel free to add a ticket and let us know your views to make the code better

    Thanks for Your Time! Have a Good Day!

    . . .

    Comments (9)

    Add Your Comment

  • Nasiruddin Khan
    Nice about Admin menu in wordpress
    • Mohit Verma
      Thanks for the appreciation!
  • Eren
    I have an issue

    I would like to customize my WordPress Dashboard Menu with adding codes.
    I tried following code block to remove “Tools” and “Users” from menu, and it worked:

    function wpexplorer_remove_menus() {
    remove_menu_page( ‘users.php’ );
    remove_menu_page( ‘tools.php’ );
    add_action( ‘admin_menu’, ‘wpexplorer_remove_menus’ );

    But for instance, I’m trying to remove “SliderRevolution” from menu but it’s failing.
    SliderRevolution is a menu which contains sub-menus under them.

    When I look “Tools” menu’s php name, it seems as tools.php
    and when I look SliderRev name, it seems as admin.php?page=revslider

    I tried this code and it didn’t work :
    remove_menu_page( ‘admin.php?page=revslider’ );

    Which code can I use to remove this RevolutionSlider and the other menu elements like this ?

  • Ben
    add_action(‘newsflash’, ‘newsflash’);
    function custom_menu() {

    ‘dashicons-welcome-widgets-menus’, 90);

    // remove admin bar
    // add_filter(‘show_admin_bar’, ‘__return_false’);


    There is a syntax error, unexpected ‘show_admin_bar’ (T_STRING), expecting ‘)’ please help with the menu code and the error, relatively new to PHP. Sorry 🙁

    • Mohit Verma
      Hello Ben,


      Thanks for the comment.

      We have checked your issue.

      add_action(‘newsflash’, ‘newsflash’);

      It’s not a right way to use admin hook.

      Please use updated code.

      add_action(‘admin_menu’, ‘custom_menu’);

      ‘admin_menu’ : it’s a hook tag use for admin menu.
      ‘custom_menu’ : it’s a callback function use to do the all stuffs.

      If you have any query, feel free to ask. We are here to help you.

      Thanks & Regards

      Mohit verma

  • pradeep
    –submenu notshowing issue—
    add_menu_page(‘Safety Checklist’, ‘Safety Checklist’, ‘manage_options’, ‘option_checklist.php’, ”, ‘dashicons-welcome-widgets-menus’, 90);
    add_submenu_page(‘checklist_category.php’, ‘Manage Checklist Category’, ‘Manage Checklist Category’, 82, ‘checklist_category.php’, ‘checklist_category.php’);
    • Mohit Verma

      We have checked and fixed your issue.

      Please use all the parameters in right way.

      Updated code:

      add_menu_page(‘Safety Checklist’, ‘Safety Checklist’, ‘manage_options’, ‘option_checklist’,’option_checklist’, ‘dashicons-welcome-widgets-menus’, 90);
      add_submenu_page(‘option_checklist’, ‘Manage Checklist Category’, ‘Manage Checklist Category’,’manage_options’,’option_checklist_submeu’,’option_checklist_sub’);


      option_checklist is a callback function of main menu.
      option_checklist_sub is a callback function of sub-menu.

      do all the stuffs in callback functions.

      Still have any issue feel free to add a ticket and let us know your views to make the code better

      • Coto
        Does the submenus php as well as callback have to be in the same php page as main menu? Or should they be separately written?
        • Mohit Verma

          You can write code in any file but sub-menu action can access the callback function. Main menu action and sub-menu action should be in same php file.

          Still have any issue feel free to add a ticket.

  • Back to Top
    Hire Us!
    Brief us about your requirements and we'll get back to you.
    Woo! Hooy!
    We have just received your message and our expert will get back to you shortly.
    Send Again

    Table of Content

    Hide Index