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
[pastacode lang= »php » message= » » highlight= » » provider= »manual »]
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' );
[/pastacode]
Afficher / masquer les menus de gauche du tableau de bord
[pastacode lang= »php » message= » » highlight= » » provider= »manual »]
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');
[/pastacode]
Afficher / masquer les sous-menus de gauche du tableau de bord
[pastacode lang= »php » message= » » highlight= » » provider= »manual »]
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
[/pastacode]
Afficher / masquer les widgets natifs de WordPress
[pastacode lang= »php » message= » » highlight= » » provider= »manual »]
/* 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);
[/pastacode]
Cacher l’onglet « options d’écran »
[pastacode lang= »php » message= » » highlight= » » provider= »manual »]
/* 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);
[/pastacode]
Cacher les notifications de mise à jour WordPress
[pastacode lang= »php » message= » » highlight= » » provider= »manual »]
/* 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;" ) );
}
[/pastacode]
Supprimer des colonnes dans les pages, articles et médias
[pastacode lang= »php » message= » » highlight= » » provider= »manual »]
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');
[/pastacode]
Supprimer la barre d’administration
[pastacode lang= »php » message= » » highlight= » » provider= »manual »]
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 );
[/pastacode]
Supprimer la bulle commentaire avec son nombre
[pastacode lang= »php » message= » » highlight= » » provider= »manual »]
function remove_comments(){
global $wp_admin_bar;
$wp_admin_bar->remove_menu('comments');
}
add_action( 'wp_before_admin_bar_render', 'remove_comments' );
[/pastacode]
Modifier le dropdown d’aide
[pastacode lang= »php » message= » » highlight= » » provider= »manual »]
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>";
}
[/pastacode]
Ajouter un avertissement en haut de page
[pastacode lang= »php » message= » » highlight= » » provider= »manual »]
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>';
}
[/pastacode]
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 »
[pastacode lang= »php » message= » » highlight= » » provider= »manual »]
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');
[/pastacode]
Supprimer des lignes dans le module « Aujourd’hui »
[pastacode lang= »php » message= » » highlight= » » provider= »manual »]
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');
[/pastacode]
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.