web-dev-qa-db-fra.com

Comment supprimer le widget Lien brisé Checker du menu admin

J'essaie de nettoyer les widgets du tableau de bord Admin afin que seuls les utilisateurs de niveau administrateur puissent voir les différentes méta-boîtes, mais peu importe ce que j'ai. essayé le widget Vérificateur de lien brisé ne disparaîtra pas (voir exemple de code ci-dessous).

J'utilise WordPress 3.1 MultiSite Networket travaille avec ce code dans le dossier MU plugins... je ne suis pas sûr que ça compte ... J'ai aussi essayé Adminimizeplugin mais cela ne fonctionnait pas pour moi non plus sur le widget.

/* Turn off Dashboard Widgets */

if( is_admin() )
    add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );

function remove_dashboard_widgets() {
    global $wp_meta_boxes;
    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']['side']['core']['dashboard_recent_drafts']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['blc_dashboard_widget']);
}

Merci d'avance pour tous les conseils ... Cordialement,
Chuck Scott

2
user4014

Le problème est probablement simplement que votre code s'exécute avant que le vérificateur de liens rompus ajoute la boîte de méta. Essayez de changer la ligne d'action en ceci:

if(is_admin()){
  add_action('wp_dashboard_setup', 'remove_dashboard_widgets', 1000 );
}

MODIFIER

Pour être un peu plus clair, le problème ici est que la fonction add_action() fonctionne très tôt par rapport à la fonction add_action de Broken Link Checker. Les deux manières de résoudre ce problème sont d'exécuter votre code plus tard (en reliant la fonctionnalité principale de votre plugin à init et en lançant vos actions et filtres dans cette fonction init), ou en augmentant la priorité de votre action (ce que j'ai suggéré ci-dessus).

3
John P Bloch