Simplifier et améliorer le tableau d’administration de WordPress

Afin d’avoir une interface à la fois la plus simple possible mais aussi la plus épurée il est important pour un utilisateur d’avoir en vue seulement les éléments qu’il doit utiliser, cela lui permettra de se concentrer au mieux sur ses besoins.

Tout ces ajouts de codes doivent se faire dans le fichier functions.php de votre thème afin de fonctionner correctement.

Afficher / masquer les widgets dans le tableau de bord

function erocks_kill_all_dash_widgets() {
	global $wp_meta_boxes;
	//Widget de Press Minute
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
	//Widget des liens entrants
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
	//Widget des statistiques: nombre d'articles, de pages, etc. 
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
	//Widget des  news sur les plugins WordPress
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
	//Widget de brouillons recents
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
	//Widget des commentaires recents 
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
	//Widget des infos "Blog WordPress"
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
	//Widget des autres actualités de wordpress 
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
}
add_action( 'wp_dashboard_setup', 'erocks_kill_all_dash_widgets' );

Afficher / masquer les menus de gauche du tableau de bord

function remove_menu_items() {
 global $menu;
 $restricted = array(__('Links'), __('Comments'), __('Media'),
 __('Plugins'), __('Tools'), __('Users'));
 end ($menu);
 while (prev($menu)){
 $value = explode(' ',$menu[key($menu)][0]);
 if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){
 unset($menu[key($menu)]);}
 }
 }

add_action('admin_menu', 'remove_menu_items');

Afficher / masquer les sous-menus de gauche du tableau de bord

add_action( 'admin_menu', 'adjust_the_wp_menu', 999 );
function adjust_the_wp_menu() {
	$page = remove_submenu_page( 'edit.php', 'edit.php' ); //Menu Tous les articles
	$page = remove_submenu_page( 'edit.php', 'post-new.php' ); //Menu Ajouter article
	$page = remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=category' ); //Menu Catégorie
	$page = remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=post_tag' ); //Menu Mots-clefs
	$page = remove_submenu_page( 'upload.php', 'media-new.php' ); //Menu Ajouter media
	$page = remove_submenu_page( 'upload.php', 'upload.php' ); //Menu bibliotheque
	$page = remove_submenu_page( 'edit.php?post_type=page', 'edit.php?post_type=page' ); //Menu Toutes les pages
	$page = remove_submenu_page( 'edit.php?post_type=page', 'post-new.php?post_type=page' ); //Menu Ajouter une page
	$page = remove_submenu_page( 'themes.php', 'themes.php' ); //Menu Themes (choisir)
	$page = remove_submenu_page( 'themes.php', 'customize.php' ); //Menu Personnaliser theme
	$page = remove_submenu_page( 'themes.php', 'widgets.php' ); //Menu Gestiond des widgets
	$page = remove_submenu_page( 'themes.php', 'nav-menus.php' ); //Menu Gestion des menus
	$page = remove_submenu_page( 'themes.php', 'theme-editor.php' ); //Menu Edition de theme
	$page = remove_submenu_page( 'plugins.php', 'plugins.php' ); //Menu Extensions installées
	$page = remove_submenu_page( 'plugins.php', 'plugin-install.php' ); //Menu Installer plugin
	$page = remove_submenu_page( 'plugins.php', 'plugin-editor.php' ); //Menu Edition de plugin
	$page = remove_submenu_page( 'users.php', 'users.php' ); //Menu Tous les utilisateurs
	$page = remove_submenu_page( 'users.php', 'user-new.php' ); //Menu Ajouter un utilisateur
	$page = remove_submenu_page( 'users.php', 'profile.php' ); //Menu Votre profil
	$page = remove_submenu_page( 'tools.php', 'tools.php' ); //Menu Outils disponniles
	$page = remove_submenu_page( 'tools.php', 'import.php' ); //Menu Outils importer
	$page = remove_submenu_page( 'tools.php', 'export.php' ); //Menu Outils exporter
	$page = remove_submenu_page( 'options-general.php', 'options-general.php' ); //Menu Reglages general
	$page = remove_submenu_page( 'options-general.php', 'options-writing.php' ); //Menu Reglages ecriture
	$page = remove_submenu_page( 'options-general.php', 'options-reading.php' ); //Menu Reglages lecture
	$page = remove_submenu_page( 'options-general.php', 'options-discussion.php' ); //Menu Reglages discussion
	$page = remove_submenu_page( 'options-general.php', 'options-media.php' ); //Menu Reglages medias
	$page = remove_submenu_page( 'options-general.php', 'options-permalink.php' ); //Menu Reglages permaliens

Afficher / masquer les widgets natifs de WordPress

/* Supprimer les widgets */
 function remove_default_widgets() {
     unregister_widget('WP_Widget_Pages'); //Widget Pages
     unregister_widget('WP_Widget_Calendar'); //Widget Calendrier
     unregister_widget('WP_Widget_Archives'); //Widget Archives
     unregister_widget('WP_Widget_Links'); //Widget Liens
     unregister_widget('WP_Widget_Meta'); //Widget Meta
     unregister_widget('WP_Widget_Search'); //Widget Rechercher
     unregister_widget('WP_Widget_Text'); //Widget Texte
     unregister_widget('WP_Widget_Categories'); //Widget Catégories
     unregister_widget('WP_Widget_Recent_Posts'); //Widget Articles recents
     unregister_widget('WP_Widget_Recent_Comments'); //Widget Commentaires recents
     unregister_widget('WP_Widget_RSS'); //Widget Flux
     unregister_widget('WP_Widget_Tag_Cloud'); //Widget Nuag de mots clef
     unregister_widget('WP_Nav_Menu_Widget'); //Widget Menu personnalise
 }
 add_action('widgets_init', 'remove_default_widgets', 11);

Cacher l’onglet “options d’écran”

/* Enlever les options d'écrans */
add_filter( 'contextual_help', 'mytheme_remove_help_tabs', 999, 3 );
function mytheme_remove_help_tabs($old_help, $screen_id, $screen){
    $screen->remove_help_tabs();
    return $old_help;
}
function remove_screen_options($display_boolean, $wp_screen_object){
  $blacklist = array('post.php', 'post-new.php', 'index.php', 'edit.php');
  if (in_array($GLOBALS['pagenow'], $blacklist)) {
    $wp_screen_object->render_screen_layout();
    $wp_screen_object->render_per_page_options();
    return false;
  } else {
    return true;
  }
}
add_filter('screen_options_show_screen', 'remove_screen_options', 10, 2);

Cacher les notifications de mise à jour WordPress

/* Désactiver message mise a jour */
if ( !current_user_can( 'edit_users' ) ) {
add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
}

Supprimer des colonnes dans les pages, articles et médias

function custom_post_page_columns($defaults) {
	unset($defaults['author']);		// Auteur
	unset($defaults['comments']);		// Commentaires
	unset($defaults['date']);		// Date
	return $defaults;
}
add_filter('manage_posts_columns', 'custom_post_page_columns');
add_filter('manage_pages_columns', 'custom_post_page_columns');
add_filter('manage_media_columns', 'custom_post_page_columns');

Supprimer la barre d’administration

add_filter( 'show_admin_bar', '__return_false' );
function sf_hide_admin_bar_settings() { ?>
     <style type="text/css">.show-admin-bar{display:none}</style>
<?php }
function sf_disable_admin_bar() {
     add_filter( 'show_admin_bar', '__return_false' );
     add_action( 'admin_print_scripts-profile.php', 'sf_hide_admin_bar_settings' );
}
add_action( 'init', 'sf_disable_admin_bar' , 9 );

Supprimer la bulle commentaire avec son nombre

function remove_comments(){
        global $wp_admin_bar;
        $wp_admin_bar->remove_menu('comments');
}
add_action( 'wp_before_admin_bar_render', 'remove_comments' );

Modifier le dropdown d’aide

add_action('load-page-new.php','custom_help_page');
add_action('load-page.php','custom_help_page');
function custom_help_page() {
 	add_filter('contextual_help','custom_page_help');
}
function custom_page_help($help) {
 	// echo $help; // Décommenter cette ligne si vous souhaitez garder l'aide originale et y ajouter la votre
 	echo "<h5>Aide personnalisée</h5>";
 	echo "<p>Votre code HTML ici.</p>";
}

Ajouter un avertissement en haut de page

add_action( 'admin_notices', 'sf_admin_notice' );
function sf_admin_notice(){
    	global $current_screen;
    	if ( $current_screen->parent_base == 'options-general' )
		echo '<div class="updated"><p>Attention - Changer des réglages sur ces pages peut causer des problèmes au design du site!</p></div>';
}

Dans l’exemple ci-dessus, l’avertissement est affiché sur les pages de réglages.
Il est intéressant de noter les classes employées :

  • « updated » affichera l’avertissement au-dessous du titre de la page, sur fond jaune.
  • « error » affichera l’avertissement au-dessous du titre de la page, sur fond rouge.
  • Si aucune classe n’est précisée, l’avertissement s’affichera au-dessus du titre de la page, sans fond particulier, sans mise en forme particulière du texte.

Ajouter vos Costum Post Types dans le module “Aujourd’hui”

function portfolio_in_today() {
	$types = 'portfolio';
        if (!post_type_exists(''.$types.'')) { return; }
        $num_posts = wp_count_posts( ''.$types.'' );
        $nbr_ = 'Projet';
	$nbr_s = 'Projets';
        $num = number_format_i18n( $num_posts->publish );
        $text = _n('' . $nbr_ . '', '' . $nbr_s . '', intval($num_posts->publish) );
        if ( current_user_can( 'edit_posts' ) ) {
            $num = "<a href='edit.php?post_type=$types'>$num</a>";
            $text = "<a href='edit.php?post_type=$types'>$text</a>";
        }
        echo '<tr><td class="first b">' . $num . '</td><td class="t">' . $text . '</td></tr>';
        if ($num_posts->pending > 0) {
            $num = number_format_i18n( $num_posts->pending );
            $text = _n( 'En attente', 'En attentes', intval($num_posts->pending) );
            if ( current_user_can( 'edit_posts' ) ) {
                $num = "<a href='edit.php?post_status=pending&post_type=$types'>$num</a>";
                $text = "<a class='waiting' href='edit.php?post_status=pending&post_type=$types'>$text</a>";
            }
            echo '<tr><td class="first b">' . $num . '</td><td class="t">' . $text . '</td></tr>';
        }
}
add_action('right_now_content_table_end', 'portfolio_in_today');

Supprimer des lignes dans le module “Aujourd’hui”

function sf_admin_head() {
	$blog_url = get_bloginfo('url');
	$templ_url = get_bloginfo('template_url');
	echo '<link rel="shortcut icon" href="'.$blog_url.'/favicon.ico" />';
	echo '<link rel="apple-touch-icon" href="'.$blog_url.'/apple-touch-icon.png"/>';
	echo '<style type="text/css">#header-logo{background-image:url('.$templ_url.'/images/logo-admin.png)!important;width:62px!important;height:36px!important;margin:7px 0 0 185px!important;}'
		.'#adminmenu{margin:15px 5px 15px -170px;width:155px;}'
		.'.table_discussion,.b.b-posts,.t.posts,.b.b-cats,.t.cats,.b.b-tags,.t.tags{display:none;}</style>';
}
add_action('admin_head', 'sf_admin_head');

Pour info :

  • .table_discussion : commentaires,
  • .b.b-posts,.t.posts : posts,
  • .b.b-pages,.t.pages : pages,
  • .b.b-cats,.t.cats : catégories,
  • .b.b-tags,.t.tags : mots clés.

 

Vous avez maintenant tous les éléments pour créer votre tableau de bord WordPress sur mesure, et optimisé pour vos besoins spécifiques.