Customizing WordPress Admin – updated for 3.1 with new tips!

Back in June of 2010 I debuted a talk at WordCamp Chicago which I updated and shared in September at WordCamp Mid-Atlantic. Aimed at developers, Customizing WordPress Administration offered killer tips for consultants looking to tailor the other end of WordPress for their clients.

At the heart of the talk was a simple  Twenty-Ten child theme, with the focal point being a functions.php file loaded to the gills with hooks and functions that customize the branding and administrative experience (available for download here).

I’ve updated the child theme to 1.5; in addition to incorporating some suggestions, I’ve updated some small bits (like removing menu items) to take advantage of new WordPress 3.1 API calls and some other best practices (it now requires WordPress 3.1).

The tips include:

  • Adding an admin stylesheet so you can restyle the back end – including the logo!
  • Renaming admin items by hooking translation functions (“Posts” became “Articles”)
  • Adding an “Admin Lite” role that can manage users, widgets, menus, and plug-ins, but can’t change the theme or settings
  • Removing unwanted post meta boxes, widgets, menu items, editor buttons, and more
  • Adding additional contextual help – globally and on a screen by screen basis!
  • Styling the editor – globally, or unique to each post type!
  • Add an ID column to the list of posts
  • Add a dashboard widget with your own company’s RSS feed

The functions.php script is commented in detail, so even if you don’t really understand how the code works, you can work some copy and paste magic. This child theme is still completely GPL – I still hope to see these ideas propagate in the community and strengthen WordPress’ reputation as one of the easiest, friendliest content management systems. I do ask that if you use some or all of the code in a theme, that you provide a friendly attribution in the source code to this post and yours truly.

Keep in mind, although this is built as a child theme to Twenty-Ten, the default theme as of WordPress 3.0, it should work with just about any theme. Just edit the style.css and change the parent theme.

Download the Custom WP Admin Twenty-Ten child theme now!

  1. […] 2.1 Best Practice For Adding Custom Functions10 Techniques for Customizing the WordPress Admin PanelCustomizing WordPress Admin – updated for 3.1 with new tips!Custom Meta Boxes6 .htaccess Tricks for Better WordPress SEO & SecurityWhat to do when […]

  2. […] } Further readingHere are more tips for developers who build websites for clients:Customizing WordPress Administration with Twenty-Ten Child Theme10 Techniques for Customizing the WordPress Admin PanelMore WordPress power tips from Smashing […]

  3. LOVE THIS IDEA! Props for the work you’ve put into this so far! :)

    I noticed (at least in my latest install of WP) that when clicking on the “Articles” section of the admin, the page title (next to the icon) still read, “Posts”.

    I’ve tracked down the display element for this, and added one line under line 176 of the functions.php:

    add_filter( ‘esc_html’, ‘change_post_to_article’ );

    This took care of the name. Thanks again for the hard work!

  4. what a great, clean way to customize the admin panel! nice work!

  5. Does this change at all for WP 3.2?

    • Unfortunately, yes, in some small ways, but I haven’t had a chance to update again. The code won’t break anything, but not everything works anymore.

  6. […] Jake commented below that the blog post has moved and been updated with new code. If you are still interested in learning about this process, you can visit Jake’s new blog post. […]

  7. This is great! Thank you for sharing. I have a question, is there a way to change the url on the login page logo (currently goes to

    • Yes. I’ll be putting up a blog post about this.

  8. How to change dashboard submenus labels?

    • You have to grab the global “menu” variable and manually manipulate it.

  9. […] Customizing WordPress Admin – updated for 3.1 with new tips! […]

  10. […] taken the “fine-tuning administration” series as far as I can go (Hijacking WordPress Admin, Editing the Visual Editor, and What Would Core Do?), I’m turning my attention to another […]

  11. $translated = str_ireplace( ‘Post’, ‘News’, $translated );

    Unfortunately, this will output “Newss”, WP doesn’t get words :D And if you use “New”, it will show “Add New New” :)

  12. Is there a way to rename the label for ‘Tags’ under Posts to something like ‘Centers’?

    • Yep, same technique.

Leave a Comment

Finely crafted websites & tools that make the web better.