Custom menu items with hook menu I'm using hook menu here for the first time as token menu doesn't seem to be doing what I need. 

In the end, I need a menu that will use a wildcard and load a view based on that wildcard. I have the views working, now working on the menu.

I have a "directory" structure like so:


committee/committee-name/charter 
committee/committee-name/roster
etc... 


So I am using hook menu like so:

$items['committee'] = array(
        'title' =&gt; 'Committee Page',
        'page callback' =&gt; 'committeemenu_mymenu_page_callback',
        'access callback' =&gt; TRUE,
        'type' =&gt; MENU_NORMAL_ITEM,
    );  

    $items['committee/%/roster'] = array(
        'title' =&gt; 'Roster',
        'page callback' =&gt; 'committeemenu_mymenu_page_callback',
        'access callback' =&gt; TRUE,
        'type' =&gt; MENU_NORMAL_ITEM,
    );  

    $items['committee/%/charter'] = array(
        'title' =&gt; 'Charter',
        'page callback' =&gt; 'committeemenu_mymenu_page_callback',
        'access callback' =&gt; TRUE,
        'type' =&gt; MENU_NORMAL_ITEM,
    );  


Committee shows on my menu, but Roster and Charter don't. I am not sure why not? If I give a wildcard, committee/%, to committee for example, I get no menu item. So is this a wildcard issue? should I be able to use a wildcard here? I am going to pull in a view based on wildcard and charter/roster content types.
See hook_menu for reference under using Wildcards but you need to tell your menu which page arguments are going to be passed into your function:

$items['committee'] = array(
        'title' =&gt; 'Committee Page',
        'page callback' =&gt; 'committeemenu_mymenu_page_callback',
        'access callback' =&gt; TRUE,
        'type' =&gt; MENU_NORMAL_ITEM,
    );  

    $items['committee/%/roster'] = array(
        'title' =&gt; 'Roster',
        'page callback' =&gt; 'committeemenu_mymenu_page_callback',
        'page arguments' =&gt; array(1),
        'access callback' =&gt; TRUE,
        'type' =&gt; MENU_NORMAL_ITEM,
    );  

    $items['committee/%/charter'] = array(
        'title' =&gt; 'Charter',
        'page callback' =&gt; 'committeemenu_mymenu_page_callback',
        'page arguments' =&gt; array(1),
        'access callback' =&gt; TRUE,
        'type' =&gt; MENU_NORMAL_ITEM,
    );  


In this case array(1) would be the second positiong (as array(0) would be the first) if your wildcard resided in committee/charter/% it would be array(2).

I do not believe your items will be showing in the menu because there are wild cards, you would have to do that in your local tasks instead as the menu would not have any idea.