DISCLAIMER: this post is older than one year and may not be up to date with latest WordPress version.

Added in version 2.7, the Dashboard Widget API allow you to ad widgets to your WordPress admin dashboard. In this recipe, I’ll show you how you can easily remove them programatically.

Simply paste the following into your functions.php file. The code will remove all dashboard widgets, so you should comment lines related to wigets you’d like to keep.

function remove_dashboard_widgets() {
	global $wp_meta_boxes;

	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_drafts']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);

}

if (!current_user_can('manage_options')) {
	add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );
}

Thanks to NoScope for this code!

By the way, did you had a look to my latest post on CatsWhoCode about WP 3.0 custom post types?

5 Comments

  1. Tried this in WP 3.2.1, but it did not work.

  2. This also caused an error for me on WordPress 3.2.1. I used the following code to remove dashboard widgets:

    //Remove unnecessary dashboard widgets
    function jg_remove_dashboard_widgets() {
    //Remove WordPress default dashboard widgets
    remove_meta_box( ‘dashboard_quick_press’, ‘dashboard’, ‘side’ );
    remove_meta_box( ‘dashboard_incoming_links’, ‘dashboard’, ‘normal’ );
    remove_meta_box( ‘dashboard_recent_comments’, ‘dashboard’, ‘normal’);
    remove_meta_box( ‘dashboard_plugins’, ‘dashboard’, ‘normal’);
    remove_meta_box( ‘dashboard_primary’, ‘dashboard’, ‘side’);
    remove_meta_box( ‘dashboard_secondary’, ‘dashboard’, ‘side’);

    //Remove additional plugin widgets
    remove_meta_box( ‘wp125_widget’, ‘dashboard’, ‘normal’);
    remove_meta_box( ‘yoast_db_widget’, ‘dashboard’, ‘normal’);
    }
    add_action(‘wp_dashboard_setup’, ‘jg_remove_dashboard_widgets’ );

    I hope that’s helpful for someone.

  3. Great tip…one thing I noticed is that this:
    unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_right_now’]);

    should be changed to this:
    unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_right_now’]);

  4. The errors caused are due to formatting of ‘ character which wordpress changes.

  5. thanks for this coding. but i have some problem . i want to hide some plugin to author on add new post. please help me. thanks

Leave a Comment

Your email address will not be published. Required fields are marked *