I'm adding an extra menu item in admin menu by using add_menu_page.

add_menu_page('Calendar', 'Calendar', 'edit_posts', 'wp-eventcal/eventcal-manager.php');

Still my editors do not see the menu item. Why not? Any user that can edit a post, should now be able to see the menu item.


This is the code:

  // Define some constants
  define('WP_CAL_PLUGIN_DIR', trailingslashit( str_replace("\\","/", dirname(__FILE__) ) ) );
  define('WP_CAL_PLUGIN_URL', trailingslashit( str_replace("\\","/", dirname(__FILE__) ) ) );

  // Plugin activation / deactivation script

  // create custom plugin settings menu
  if ( function_exists('add_action') ) {
    add_action('admin_menu', 'event_cal_menu');
    add_shortcode('eventcal', 'shortcode_display_event');

function event_cal_menu() {
    //create new top-level menu
    add_menu_page('Calendar', 'Calendar', 'read', 'wp-eventcal/eventcal-manager.php');

Could it be admin_init in add_action that gives me problems?

Update 2
If I log in as administrator, I can see the menu item.

  • I'm not sure if this is what's causing the menu item not to show up (I don't think it would), but you should also have a callback as a 5th parameter at the end, so that there's some output to the page on that admin menu. The only other thing I can think of that would prevent the menu from showing up is too early or too late registration. Can you post your surrounding code (e.g. how you hook in to add the menu page, etc.). Also, can other roles that have edit_posts see the menu? Jan 18, 2011 at 14:36
  • @John P Bloch: done
    – Steven
    Jan 18, 2011 at 15:23

1 Answer 1


Must be a problem with the surrounding code, your add_menu_page code works fine inside my test code, i can see the item as an admin or editor.

add_action( 'admin_menu' , 'admin_menu_new_items' );
function admin_menu_new_items() {
    add_menu_page('Calendar', 'Calendar', 'edit_posts', 'wp-eventcal/eventcal-manager.php');

Works just fine for me..

Are you using any plugins for managing the admin menu, such as Adminize? Or alternatively using any CSS to hide elements in the menu? Only two reasons i could think it would be hidden(aside from a problem with surrounding code).

  • I'm not using any plugins for managing admin menu, nor any CSS to hide elements in admin. If I use administrator in stead of read, I can see it as administrator - but not as a user without admin rights.
    – Steven
    Jan 18, 2011 at 16:39
  • 1
    OK, I just found the error. A bit embarrassing really. I was using .com in my URL which is my prod server - I was supposed to use .no which is my localhost. So... problem solved - it works now :)
    – Steven
    Jan 18, 2011 at 16:46
  • I'm sure we've all done similar things(i know i have numerous times), at least you took the time to post back and let us know, so happy to hear you solved your problem... ;)
    – t31os
    Jan 18, 2011 at 16:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.