Add ‘Right Now’ widget to custom dashboard

I have created a custom dashboard page to which the user is redirected when logged in. I want to include the ‘Right Now’ widget to my custom dashboard page. How do I achieve that ?

class CustomDash {

function __construct(){

    add_action( 'admin_menu', array( &$this, 'nn_register_custom_dash' ) );
    add_action( 'load-index.php', array( &$this, 'nn_redirect_custom_dash' ) );
}

function nn_register_custom_dash(){

    add_dashboard_page( 'Custom Dash', 'Custom Dash', 'manage_options', 'custom-dash', array( &$this, 'nn_create_dash' ) );
}

function nn_redirect_custom_dash(){

    $screen = get_current_screen();
    if( $screen->base == 'dashboard' )
        wp_redirect( admin_url( 'index.php?page=custom-dash' ) );
}

function nn_create_dash(){


}
}

new CustomDash();

1 Answer
1

I’ve got to know it in Make WordPress UI. The plugin Dashboard uses a very interesting technique:

add_action( 'load-index.php', array( $this , 'override_dashboard' ) );

public function override_dashboard() 
{
    if( !isset( $_GET['page'] || 'custom-dash' != $_GET['page'] )
        return;

    if ( get_current_screen()->in_admin( 'site' ) ) {
        require dirname( __FILE__ ) . '/dashboard-override.php';
        exit;
    }
}

And then it proceeds to fully rebuild the Dashboard with the file dashboard-override.php, with a brand new clones of the Widgets, like rightnow.php. I think it’s worth emulating.

Leave a Comment