Cómo eliminar todos los widgets del panel de control de WordPress

22 nov 2012, 03:34:57
Vistas: 14.4K
Votos: 4

Estoy buscando tener un panel de control completamente limpio. Sin widgets y preferiblemente de una sola columna.

He encontrado fragmentos de código para eliminar los widgets predeterminados de WordPress pero nada sobre los agregados por plugins. He buscado por todas partes y parece que esto no se ha preguntado antes.

Panel de WordPress no vacío

0
Todas las respuestas a la pregunta 4
2
12

Desde esta Q&A, he aprendido sobre la variable global $wp_meta_boxes. Y allí también está el código para eliminar los meta boxes predeterminados.

Después de examinar la variable, este es el código que escribí para eliminar todos los Widgets del Escritorio, incluyendo los añadidos por 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();
}

La respuesta para forzar una columna como opción de pantalla está aquí:

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;
}

Este proporcionó el código para ocultar las pestañas de Opciones de Pantalla y Ayuda:

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;
}

Vale, ahora casi no hay nada en el Escritorio, ¿qué sigue?

Un poco de CSS para ocultar el icon-index y el título H2, y algo de jQuery para llenar el vacío:

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(); // pronto en StackOverflow 
            });
        </script>   
    <?php
}

[ actualización ]

El vacío llenado se puede encontrar en StackOverflow.
Usa esa función wpse_73561_dashboard_scripts en lugar de esta.

22 nov 2012 03:34:57
Comentarios

¿Por qué no simplemente $wp_meta_boxes['dashboard']['normal']['core'] = array()?

fuxia fuxia
22 nov 2012 03:46:31

@toscho : Sabía que había algo raro en esas líneas... Danke schön :)

brasofilo brasofilo
22 nov 2012 03:50:12
1

Esto funcionará correctamente

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

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

}
20 sept 2015 16:08:33
Comentarios

Esto está bien, pero no elimina los metaboxes añadidos por plugins como Gravity Forms—si quieres eliminar incluso aquellos añadidos por plugins necesitas agregar una alta prioridad a la llamada de acción, algo como add_action('wp_dashboard_setup', 'remove_dashboard_widgets', 99999);

cfx cfx
25 feb 2025 05:01:38
0

Eliminar metaboxes predeterminados de WP en el escritorio:

@fuente https://github.com/vincentorback/clean-wordpress-admin/blob/master/dashboard.php

/**
 * Eliminar widgets del escritorio.
 *
 * @link https://developer.wordpress.org/reference/functions/remove_meta_box/
 */
add_action(
    'wp_dashboard_setup',
    function () {
        // Eliminar el panel 'Bienvenida'
        remove_action( 'welcome_panel', 'wp_welcome_panel' );

        // Eliminar el metabox 'Estado del sitio'
        remove_meta_box( 'dashboard_site_health', 'dashboard', 'normal' );

        // Eliminar el metabox 'A primera vista'
        remove_meta_box( 'dashboard_right_now', 'dashboard', 'normal' );

        // Eliminar el metabox 'Actividad'
        remove_meta_box( 'dashboard_activity', 'dashboard', 'normal' );

        // Eliminar el metabox 'Noticias de WordPress'
        remove_meta_box( 'dashboard_primary', 'dashboard', 'side' );

        // Eliminar el metabox 'Borrador rápido'
        remove_meta_box( 'dashboard_quick_press', 'dashboard', 'side' );
    }
);

Eliminar todos los metaboxes de WP en el escritorio (incluyendo plugins):

@fuente: desconocida

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

Si deseas ocultar todos los widgets del escritorio EXCEPTO los personalizados que hayas creado:

Cambia las prioridades de las acciones para primero eliminar todos y luego agregar los tuyos:

//Eliminar todos los widgets del escritorio de administración
add_action('wp_dashboard_setup', 'remove_all_dashboard_widgets', 100 );
function remove_all_dashboard_widgets() {
    
    global $wp_meta_boxes;
    $wp_meta_boxes = [];
    
}

//Agregar widgets personalizados
add_action('wp_dashboard_setup', 'my_dashboard_widgets', 999);
function my_dashboard_widgets() {
    
    wp_add_dashboard_widget(
        'my_dashboard_widget',          // ID del widget
        'Mi Widget del Escritorio',     // Título del widget
        'my_dashboard_widget_content'   // Función callback que renderiza el contenido
    );

    
}

//Contenido del widget
function my_dashboard_widget_content() {

   //El contenido va aquí
   //Podrías hacer un WP_Query personalizado para obtener resultados de posts, u otros datos...

}
24 ene 2025 00:17:40