I’m writing a plugin for work because our main website is being ported to WordPress eventually. I’ve got multiple custom post types planned for this plugin and would like to group them all into one main menu.
Basically, I want the “Visitors” link to be placed under “Argus Admin”. The other links aren’t necessary to be added as I can “hack” those wherever I want.
$v_args = array(
'labels' => array (
'name' => 'Visitors',
'singular_name' => 'Visitor',
'add_new_item' => 'Register New Visitor', // TODO: http://codex.wordpress.org/Function_Reference/register_post_type#Arguments
),
'public' => true,
'publicly_queryable' => false,
'exclude_from_search' => true,
'show_ui' => true,
'show_in_menu' => 'argus', // TODO: This doesn't work...
'hiearchical' => false,
'supports' => array( '' ),
'register_meta_box_cb' => array ( &$this, '_wp_visitor_meta_box_cb' ),
);
register_post_type( $post_type, $v_args );
This my menu page that I created:
add_menu_page( 'Argus', 'Argus Admin', 'manage_options', 'argus', array( &$this, '_wp_argus_main_panel' ), '', -1 );
You got it right but you need to wait for WordPress 3.1 where its actually implemented. if you can’t wait you can change ‘show_in_menu’ to false and use add_submenu_page() function define ‘argus’ as top page and add the Visitors “manually” under Argus Admin menu.
so your code would be:
and then
Hope this Helps
If this is going to be ported to WordPress eventually (as in, not for another few weeks), I’d suggest waiting for WordPress 3.1 to come out. It’s due very soon, and it already does this. Of course, you could skip the waiting and just develop on trunk. The way you’re doing it there will should work in 3.1 without any changes.