Cum să elimini toate widget-urile de pe Panoul de control WordPress?
Caut o versiune complet goală a Panoului de control. Fără widget-uri și preferabil cu o singură coloană.
Există fragmente de cod pentru eliminarea widget-urilor implicite WordPress, dar nu am găsit nimic despre cele adăugate de plugin-uri. Am căutat peste tot și se pare că această întrebare nu a mai fost pusă.

Din acest Q&A, am aflat despre variabila globală $wp_meta_boxes
. Și acolo este și codul pentru eliminarea casetelor meta implicite.
După examinarea variabilei, acesta este codul pe care l-am scris pentru a elimina toate Widget-urile din Dashboard, inclusiv cele adăugate de plugin-uri:
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();
}
Răspunsul pentru a forța o singură coloană ca opțiune de ecran este de aici:
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;
}
Acesta a furnizat codul pentru a ascunde filele Opțiuni Ecran și Ajutor:
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, acum nu mai este aproape nimic în Dashboard, ce urmează?
Puțin CSS pentru a ascunde icon-index
și titlul H2
, și ceva jQuery pentru a umple golul:
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(); // în curând pe StackOverflow
});
</script>
<?php
}
[ actualizare ]
Golul umplut poate fi găsit pe StackOverflow.
Folosește funcția wpse_73561_dashboard_scripts
în loc de aceasta.

Acest lucru este bun, dar nu elimină metadatele adăugate de pluginuri precum Gravity Forms—dacă dorești să elimini chiar și cele adăugate de pluginuri, trebuie să adaugi o prioritate mare la apelul de acțiune, ceva de genul add_action('wp_dashboard_setup', 'remove_dashboard_widgets', 99999);

Elimină metabox-urile implicite din panoul de control WordPress:
@sursă https://github.com/vincentorback/clean-wordpress-admin/blob/master/dashboard.php
/**
* Eliminarea widget-urilor din panoul de control.
*
* @link https://developer.wordpress.org/reference/functions/remove_meta_box/
*/
add_action(
'wp_dashboard_setup',
function () {
// Elimină panoul 'Bine ați venit'
remove_action( 'welcome_panel', 'wp_welcome_panel' );
// Elimină metabox-ul 'Sănătatea site-ului'
remove_meta_box( 'dashboard_site_health', 'dashboard', 'normal' );
// Elimină metabox-ul 'În ochi'
remove_meta_box( 'dashboard_right_now', 'dashboard', 'normal' );
// Elimină metabox-ul 'Activitate'
remove_meta_box( 'dashboard_activity', 'dashboard', 'normal' );
// Elimină metabox-ul 'Știri WordPress'
remove_meta_box( 'dashboard_primary', 'dashboard', 'side' );
// Elimină metabox-ul 'Schiță rapidă'
remove_meta_box( 'dashboard_quick_press', 'dashboard', 'side' );
}
);
Elimină toate metabox-urile din panoul de control (inclusiv cele ale plugin-urilor):
@sursă: necunoscută
add_action('wp_dashboard_setup', 'kdev_remove_dw', 999 );
function kdev_remove_dw() {
global $wp_meta_boxes;
$wp_meta_boxes = array();
}

Dacă dorești să ascunzi toate widget-urile din panoul de control, CU EXCEPȚIA celor personalizate pe care le-ai creat:
Modifică prioritățile acțiunilor pentru a elimina mai întâi toate widget-urile, apoi adaugă-le pe cele personalizate:
//Elimină toate widget-urile din panoul de control
add_action('wp_dashboard_setup', 'remove_all_dashboard_widgets', 100 );
function remove_all_dashboard_widgets() {
global $wp_meta_boxes;
$wp_meta_boxes = [];
}
//Adaugă widget-uri personalizate
add_action('wp_dashboard_setup', 'my_dashboard_widgets', 999);
function my_dashboard_widgets() {
wp_add_dashboard_widget(
'my_dashboard_widget', // Slug-ul widget-ului
'Widget-ul meu în Panou', // Titlul widget-ului
'my_dashboard_widget_content' // Funcția callback care afișează conținutul
);
}
//Conținutul widget-ului
function my_dashboard_widget_content() {
//Conținutul aici
//Poți folosi o interogare WP_Query personalizată pentru a obține rezultate de articole sau alte date...
}
