[wp-hackers] Add_Submenu_Page Q's

Mike Walsh mike_walsh at mindspring.com
Tue Sep 18 03:50:04 GMT 2007

Thank you very much for this example, it helped me quite a bit.  It turns
out my code wasn't much different than what is posted below BUT my code also
included calls to add_options_page(), add_management_page(), and
add_theme_page().  If these calls happen prior to calling add_menu_page()
and/or add_submenu_page(), the creation of the custom sub menus fails.

I have re-posted my code for a single file Menu Tester plugin which now
works.  Hopefully someone else will find this useful.

http://www.onefishtwofish.net/menutester.txt (change the file extension to


Mike Walsh -- mike_walsh at mindspring dot com

-----Original Message-----

   5. Re: Add_Submenu_Page Q's (Jennifer Hodgdon)


Message: 5
Date: Mon, 17 Sep 2007 09:01:19 -0700
From: Jennifer Hodgdon <yahgrp at poplarware.com>
Subject: Re: [wp-hackers] Add_Submenu_Page Q's
To: wp-hackers at lists.automattic.com
Message-ID: <46EEA4CF.20007 at poplarware.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Mike Walsh wrote:
> Does anyone have any suggestions for me or is this just broken with the
> current WP release?   There were no replies to posting of the code I am
> trying to get working.

I haven't looked at your code in detail, but I have found in the past 
that to get a stand-alone menu section to work, you need to have a 
submenu page for the main page of the submenu as well as the other 
pages. Here is some code that does work from a plugin I wrote for a 
client. You may be having trouble using just __FILE__ rather than 
plugin_basename( __FILE__ )... anyway, here is some working code:

// at global level:
$confmgrFileName = plugin_basename(__FILE__);

// the function that creates the screens:
function confmgr_admin_screens()
   global $confmgrFileName;

   $accessLevel = 10;

   // top-level menu
   add_menu_page( 'Conference Manager', 'Conferences', $accessLevel,
                  $confmgrFileName, 'confmgr_conference_screen' );

   // sub-menus

   add_submenu_page( $confmgrFileName,
                     'Conferences', 'Conferences',
                     $accessLevel, $confmgrFileName, 
'confmgr_conference_screen' );

   add_submenu_page( $confmgrFileName,
                     'Sponsors', 'Sponsors',
                     $accessLevel, 'confmgr_sponsors', 
'confmgr_sponsor_screen' );

   add_submenu_page( $confmgrFileName,
                     'Sponsorship Levels', 'Sponsorship Levels',
                     $accessLevel, 'confmgr_sponsor_levels', 
'confmgr_sponsor_level_screen' );

// etc. continues with other pages


Hope this helps,

Jennifer Hodgdon

Poplar ProductivityWare * www.poplarware.com
Web Databases/Scripts * Modeling/Analysis/Palm OS Software

More information about the wp-hackers mailing list