Support » Fixing WordPress » add_submenu_page not working

  • Resolved GTHvidsten

    (@gthvidsten)


    I have followed the examples on this codex page as well as this one, but I just can’t get custom submenus to work properly.

    I hook into the ‘admin_menu’ action:

    add_action('admin_menu', array(&$this, 'add_menu'));

    Then I have the following function which handles the action and adds the menus:

    public function add_menu()
    {
        add_menu_page('Page title', 'Top-level menu title', 'manage_options', 'my-top-level-handle', array(&$this, 'main_menu_page'));
    
        // first submenu is a duplicate of the toplevel menu as per the second codex link above
        add_submenu_page('my-top-level-handle', 'Page Title', 'Top-level menu title', 'manage-options', 'my-top-level-handle',  array(&$this, 'main_menu_page'));
        add_submenu_page('my-top-level-handle', 'Page Title', 'Sub-menu title', 'manage-options', 'my-submenu-handle',  array(&$this, 'main_menu_page'));
        add_submenu_page('my-top-level-handle', 'Page Title', 'Sub-menu title 2', 'manage-options', 'my-submenu-handle2',  array(&$this, 'main_menu_page'));
    }

    I also have this function to print contents:

    public function main_menu_page()
    {
        echo "Hello menu!";
    }

    However much I try, none of the submenus are visible, and if I click the top-level menu I get the “You do not have sufficient permissions to access this page.” message.
    If I remove the first add_submenu_page line (the “duplicate”), then I no longer get the “sufficient permissions” message, and “Hello menu!” is displyed, but still no sub menus are visible.

    What am I doing wrong?

Viewing 2 replies - 1 through 2 (of 2 total)
  • After a few more hours of frustration I finally found the error of my ways.

    I had misspelled manage_options by using a hyphen instead of an underscore.

    *Hits head on wall*

    Thanks for your attention 🙂

    Hei Hvidsten (Høres Norsk ut…:)

    I am myself working on removing a sublevel menu and then moving it to another sublevel.

    Example. Moving sublevel widgets to become sublevel Tools.
    Do you happen to have a simple example on how to do this?

    I have made a tutorial and am extending it:

    Reorder left Admin menu items

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘add_submenu_page not working’ is closed to new replies.