Come Rimuovere Tutti i Widget dalla Dashboard?
Sto cercando di ottenere una Dashboard completamente vuota. Nessun widget e preferibilmente con una sola colonna.
Esistono frammenti di codice per rimuovere i widget predefiniti di WordPress, ma non ho trovato nulla riguardo a quelli aggiunti dai plugin. Ho cercato ovunque e sembra che questa domanda non sia mai stata posta.
Da questa domanda e risposta, ho imparato a conoscere la variabile globale $wp_meta_boxes
. E lì è presente anche il codice per rimuovere i meta box predefiniti.
Dopo aver esaminato la variabile, questo è il codice che ho scritto per rimuovere tutti i Widget della Dashboard, inclusi quelli aggiunti dai plugin:
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();
}
La risposta per forzare una colonna come opzione dello schermo è presa da qui:
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;
}
Questo ha fornito il codice per nascondere le schede Opzioni Schermo e Aiuto:
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, ora non c'è quasi nulla nella Dashboard, e adesso?
Un po' di CSS per nascondere l'icon-index
e il titolo H2
, e un po' di jQuery per riempire il vuoto:
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(); // presto su StackOverflow
});
</script>
<?php
}
[ aggiornamento ]
Il riempimento del vuoto può essere trovato su StackOverflow.
Usa quella funzione wpse_73561_dashboard_scripts
invece di questa.

Rimuovere i metabox predefiniti di WP nella dashboard:
@source https://github.com/vincentorback/clean-wordpress-admin/blob/master/dashboard.php
/**
* Rimozione dei widget della dashboard.
*
* @link https://developer.wordpress.org/reference/functions/remove_meta_box/
*/
add_action(
'wp_dashboard_setup',
function () {
// Rimuove il pannello 'Benvenuto'
remove_action( 'welcome_panel', 'wp_welcome_panel' );
// Rimuove il metabox 'Stato del sito'
remove_meta_box( 'dashboard_site_health', 'dashboard', 'normal' );
// Rimuove il metabox 'A colpo d'occhio'
remove_meta_box( 'dashboard_right_now', 'dashboard', 'normal' );
// Rimuove il metabox 'Attività'
remove_meta_box( 'dashboard_activity', 'dashboard', 'normal' );
// Rimuove il metabox 'Novità di WordPress'
remove_meta_box( 'dashboard_primary', 'dashboard', 'side' );
// Rimuove il metabox 'Bozza rapida'
remove_meta_box( 'dashboard_quick_press', 'dashboard', 'side' );
}
);
Rimuovere tutti i metabox di WP nella dashboard (per tutti i plugin):
@source: sconosciuto
add_action('wp_dashboard_setup', 'kdev_remove_dw', 999 );
function kdev_remove_dw() {
global $wp_meta_boxes;
$wp_meta_boxes = array();
}

Se desideri nascondere tutti i widget della dashboard TRANNE quelli personalizzati che hai creato:
Modifica le priorità delle azioni per prima rimuovere tutti i widget, poi aggiungere quelli personalizzati:
//Rimuovi tutti i widget della dashboard di amministrazione
add_action('wp_dashboard_setup', 'remove_all_dashboard_widgets', 100 );
function remove_all_dashboard_widgets() {
global $wp_meta_boxes;
$wp_meta_boxes = [];
}
//Aggiungi i widget personalizzati
add_action('wp_dashboard_setup', 'my_dashboard_widgets', 999);
function my_dashboard_widgets() {
wp_add_dashboard_widget(
'my_dashboard_widget', // Slug del widget
'Il mio Widget della Dashboard', // Titolo del widget
'my_dashboard_widget_content' // Funzione di callback che renderizza il contenuto
);
}
//Contenuto del widget
function my_dashboard_widget_content() {
//Il contenuto va qui
//Potresti fare una WP_Query personalizzata per ottenere risultati di articoli, o altri dati...
}
