How to Remove All Widgets from Dashboard?

I’m looking for a complete blank Dashboard. No widgets at all and preferably one column.

There are snippets to remove the default WordPress widgets but haven’t found anything about the ones added by plugins. Searched all over and seems that this hasn’t been asked.

Read More

Not blank WordPress Dashboard

Related posts

Leave a Reply

2 comments

  1. From this Q&A, I’ve learned about the global variable $wp_meta_boxes. And over there is also the code to remove the default meta boxes.

    After examining the variable, this is the code I wrote to remove all Dashboard Widgets, including the ones added by plugins:

    add_action('wp_dashboard_setup', 'wpse_73561_remove_all_dashboard_meta_boxes', 9999 );
    
    function wpse_73561_remove_all_dashboard_meta_boxes()
    {
        global $wp_meta_boxes;
        $wp_meta_boxes['dashboard']['normal']['core'] = array();
        $wp_meta_boxes['dashboard']['side']['core'] = array();
    }
    

    The answer to force one column as a screen option is from here:

    add_filter( 'get_user_option_screen_layout_dashboard', 'wpse_4552_one_column_layout' );
    
    function wpse_4552_one_column_layout( $cols ) {
        if( current_user_can( 'basic_contributor' ) )
            return 1;
        return $cols;
    }
    

    This one provided the code to hide the Screen Options and the Help tabs:

    add_filter( 'contextual_help', 'wpse_25034_remove_dashboard_help_tab', 999, 3 );
    add_filter( 'screen_options_show_screen', 'wpse_25034_remove_help_tab' );
    
    function wpse_25034_remove_dashboard_help_tab( $old_help, $screen_id, $screen )
    {
        if( 'dashboard' != $screen->base )
            return $old_help;
    
        $screen->remove_help_tabs();
        return $old_help;
    }
    
    function wpse_25034_remove_help_tab( $visible )
    {
        global $current_screen;
        if( 'dashboard' == $current_screen->base )
            return false;
        return $visible;
    }
    

    Ok, now there’s almost nothing in the Dashboard, what’s next?

    A bit of CSS to hide the icon-index and H2 title, and some jQuery to fill the void:

    add_action( 'admin_head-index.php', 'wpse_73561_dashboard_scripts' );
    
    function wpse_73561_dashboard_scripts() {
        ?>
            <style>#icon-index, .wrap h2 {display:none}</style>
            <script language="javascript" type="text/javascript">
                jQuery(document).ready(function($) {
                    fillTheVoid(); // soon in StackOverflow 
                });
            </script>   
        <?php
    }
    

    [ update ]

    The filled void can be found in StackOverflow.
    Use that wpse_73561_dashboard_scripts function instead of this one.

  2. This will work fine

    add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );
    function remove_dashboard_widgets() {
    
        global $wp_meta_boxes;
        unset($wp_meta_boxes['dashboard']);
    
    }