Come Rimuovere Tutti i Widget dalla Dashboard?

22 nov 2012, 03:34:57
Visualizzazioni: 14.4K
Voti: 4

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.

Dashboard WordPress non vuota

0
Tutte le risposte alla domanda 4
2
12

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.

22 nov 2012 03:34:57
Commenti

Perché non semplicemente $wp_meta_boxes['dashboard']['normal']['core'] = array()?

fuxia fuxia
22 nov 2012 03:46:31

@toscho : Sapevo che c'era qualcosa di strano in quelle righe... Danke schön :)

brasofilo brasofilo
22 nov 2012 03:50:12
1

Questo funzionerà correttamente

add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );
function remove_dashboard_widgets() {

    global $wp_meta_boxes;
    unset($wp_meta_boxes['dashboard']);

}
20 set 2015 16:08:33
Commenti

Questo è bello ma non rimuove le metabox aggiunte da plugin come Gravity Forms—se vuoi rimuovere anche quelle aggiunte dai plugin devi aggiungere una priorità alta alla chiamata dell'azione, qualcosa come add_action('wp_dashboard_setup', 'remove_dashboard_widgets', 99999);

cfx cfx
25 feb 2025 05:01:38
0

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();
}
12 nov 2023 23:44:58
0

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...

}
24 gen 2025 00:17:40