I use the add_menu_page function to add an new admin menu:


How to use one of WordPress' existing icons?

For instance, if I would like to use the "Posts" WordPress icon, by what must I replace 'wordpress_existing_icon' in the code above ?

I tried 'edit' and 'edit-posts' but it doesn't work.

  • 4
    Short answer is that you can't. Not only using add_menu_page like that. Those icons WordPress uses are added as background images via CSS, not using the icon_url method that is provided with add_menu_page.
    – Otto
    Commented Oct 20, 2012 at 21:15

3 Answers 3


add_menu_page(); as far as I can tell does not work with screen_icon or the default CSS parameters. The $icon paramater only takes 2 options, an url or div (well 3 if you leave it empty), so that leaves you with these options:

  1. Hard-code the link to the icons which are located in wp-includes/images/wpicons.png. This is an image slice of all the icons.

  2. Just cut out the icon you want in a photo editor and include it as a stand-alone image in your plugin folder like the codex example.

  3. Use the div parameter and define it via CSS. For example;


               'custom menu title', 
               'custom menu', 
               'div', //this part

To elaborate on the previous answer when using screen_icon('edit'); here is the list:

  • edit
  • upload
  • link-manager
  • edit-pages
  • edit-comments
  • themes
  • plugins
  • users
  • tools
  • options-general

You can also contain them in a div like :

<div id="icon-edit" class="icon32"></div>

Style reference: http://codex.wordpress.org/User:Wycks/Styling_Option_Pages:


Apparently this code is working for me :

    __( 'Test Book', 'testbook' ),
    'Test Book',

I simply added 'dashicons-building' as shown in the code above.

enter image description here


When you call the screen_icon function, put the page id from which you want to get the icon. For instance, if you want posts icon, use either screen_icon('edit'); or screen_icon('post');

About here, you can leave it to false or null or maybe put "div" here. I read somewhere in the codex that "div" should be used whenever there's supposed to be some custom CSS

  • Sorry but there are problably something I don't understand. I can't use screen_icon('edit') function in my add_menu_page() function ? I want the small "Posts" icon before the label of my 'Custom_menu' Commented Oct 20, 2012 at 20:31
  • 1
    not in this function, i meant in the function which outputs the html for the page Commented Oct 20, 2012 at 21:06

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.