WordPress ci permette anche di stabilire quali widget e metabox debbano comparire nella Dashboard (Bacheca). Ma come possiamo presentare una Dashboard diversa a seconda dei ruoli utente?
Possiamo utilizzare la action wp_dashboard_setup
in questo modo:
function my_dashboard_setup() {
global $wp_meta_boxes;
global $current_user;
$user_role = $current_user->roles[0];
if( $user_role == 'author' || $user_role == 'subscriber' ) {
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']['normal']['core']['dashboard_activity'] );
unset( $wp_meta_boxes['dashboard']['side']['core']['dashboard_primary'] );
unset( $wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary'] );
}
}
add_action( 'wp_dashboard_setup', 'my_dashboard_setup' );
In questo caso se gli utenti sono autori o sottoscrittori la Dashboard viene privata di ogni contenuto.