Tout savoir sur WordPress

10 petites astuces pour améliorer votre admin WordPress

Un lot de quelques astuces pour nettoyer et parfaire votre interface d’admin WordPress avant de la livrer à un client, afin qu’elle corresponde entièrement à son besoin, sans éléments superflus.

Voici quelques bouts de code que j’ai utilisés récemment dans mes projets. J’en ajouterais d’autres au fur et à mesure. Tous ces codes sont à mettre dans functions.php, ou pour les fans de bonnes pratiques, dans un plugin personnalisé.

(Benjamin Denis a donné une conférence à WP Tech Nantes à ce sujet, promis je n’ai pas copié, l’article était en préparation avant)

1. Retirer des menus de l’admin WP et de l’admin bar

Il peut être utile de simplifier le menu WordPress pour vos clients et n’afficher que ceux nécessaires. Voici un petit code pour cacher certains menus :

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]

function remove_menu_pages() {
	remove_menu_page('tools.php');
	remove_menu_page('edit-comments.php');
	remove_menu_page('edit.php?post_type=acf'); // Advanced Custom Fields
	remove_menu_page('users.php');
	remove_menu_page('wpcf7'); // Contact form 7
	remove_menu_page('wpseo_dashboard'); // SEO by Yoast
}
add_action( 'admin_menu', 'remove_menu_pages' );

[/pastacode]

Pour supprimer un élément de l’admin bar (la barre qui squatte en haut !) par exemple le lien WP Seo, utilisez ce code :

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]

function mytheme_admin_bar_render() {
	global $wp_admin_bar;
	$wp_admin_bar->remove_menu('wpseo-menu');
}
add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_render' );

[/pastacode]

2. Cacher des colonnes sur les tableaux WordPress

Si vous ajoutez Yoast, votre table des articles peut devenir vite chargée. Et vous n’avez peut être pas envie que vos clients fouinent dans les options SEO. On va donc supprimer les colonnes ajoutées par le plugin :

table-too-much

Ajoutez ce code à functions.php

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]

// remove yoast columns in admin table
function clean_posts_column( $columns ) {
    unset($columns['wpseo-title']);
    unset($columns['wpseo-score']);
    unset($columns['wpseo-metadesc']);
    unset($columns['wpseo-focuskw']);
    return $columns;
}
add_filter( 'manage_edit-post_columns', 'clean_posts_column', 10, 1 );

[/pastacode]

Ce qui ramène au tableau simple du début. Pour trouver l’identifiant d’une colonne, armez-vous de votre inspecteur de code.

table-simple

3. Optimiser Tiny MCE pour afficher la seconde ligne

Si vous utilisez les titres de niveau 2 à 6 dans vos articles, comme ici, vous allez devoir afficher la ligne 2 de l’éditeur TinyMCE. Qui n’est pas affichée par défaut. Et vous devez montrer à votre client comment faire. Il existe un moyen de l’activer par défaut avec ce code :

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]

function smoothie_enhance_editor($in) {

	$in['wordpress_adv_hidden'] = FALSE;

	return $in;
}
add_filter('tiny_mce_before_init', 'smoothie_enhance_editor');

[/pastacode]

La deuxième ligne sera affichée par défaut pour tous les utilisateurs.

media-line

4. Déplacer le bloc metabox Yoast pour l’afficher tout en bas

Yoast dispose son bloc tout de suite après l’éditeur visuel dans une page. C’est embêtant lorsque vous avez des thèmes qui rajoutent des blocs : il se retrouvent en dessous à chaque fois. On peut baisser la priorité pour que le bloc de Yoast soit le dernier.

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]

function yoast_bottom() {
	return 'low';
}
add_filter( 'wpseo_metabox_prio', 'yoast_bottom');

[/pastacode]

Le bloc sera affiché en dernier :

yoast-meta-bottom

5. cacher / afficher des metabox par défaut

Sur le tableau de bord, vous pouvez également cacher les blocs inutiles, comme les actualités WordPress, et pourquoi pas le bloc de bienvenue. Ajoutez :

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]

remove_action('welcome_panel', 'wp_welcome_panel');

function my_remove_meta_boxes() {
	remove_meta_box('dashboard_primary', 'dashboard', 'normal');
}

[/pastacode]

6. Cacher le message de mises à jour

Afin d’éviter que votre client casse tout avec une mise à jour, vous pouvez cacher le message de mise à jour. Ajoutez ce code :

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]

function hide_wp_update_nag() {
	remove_action( 'admin_notices', 'update_nag', 3 );
}
add_action('admin_menu','hide_wp_update_nag');

[/pastacode]

7. Cacher certaines metaboxes

Quand vous éditez un contenu, certains blocs ne vous serviront pas. Au lieu de les cacher manuellement, vous pouvez les cacher vous-même :

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]

function hidden_meta_boxes($hidden, $screen) {
	if ( 'post' == $screen->base || 'page' == $screen->base ):
		$hidden = array('slugdiv', 'trackbacksdiv', 'commentstatusdiv', 'postcustom', 'commentsdiv', 'authordiv', 'revisionsdiv');
		// showed : postexcerpt
	endif;
	return $hidden;
}
add_filter('default_hidden_meta_boxes', 'hidden_meta_boxes', 10, 2);

[/pastacode]

8. retirer les accents des fichiers uploadés

Si vos clients téléchargent des images qui contiennent des caractères spéciaux, elles peuvent parfois ne pas s’afficher. WordPress contient un filtre pour forcer la réecriture des noms d’images, pour plus de scurité. Ajoutez :

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]

add_filter( 'sanitize_file_name', 'remove_accents' );

[/pastacode]

9. Autoriser d’autres formats comme le svg

Si vous souhaitez que vos clients importent des images vectorielles au format web SVG par exemple, vous pourrez l’autoriser de cette manière :

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]

function add_mime_types( $mimes ){
	$mimes['svg'] = 'image/svg+xml';
	return $mimes;
}
add_filter( 'upload_mimes', 'add_mime_types' );

[/pastacode]

10. Optimiser les formats

Quand vous souhaitez mettre un format sur un texte : Titre1 ,Paragraphe … le sélecteur vous propre les titres 1, alors qu’il est déjà théoriquement utilisé par le titre de l’article. On va donc enlever Titre1, Citation, Adresse…

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]

function custom_tinymce($init) {

	$init['block_formats'] = 'Paragraph=p;Heading 2=h2;Heading 3=h3;Heading 4=h4';
	return $init;

}
add_filter('tiny_mce_before_init', 'custom_tinymce' );

[/pastacode]

Et bien d’autres

Ce sont les 10 astuces que j’utilise le plus souvent, parmi d’autres ! Il y a plein d’actions, filtres ou autres paramètres pour simplifier votre admin ou la personnaliser pour un client.

Si vous souhaitez optimiser à fond votre admin WordPress, wpcloudy a fait une super conférence à ce sujet au WP Tech Nantes, et donne encore plus de pistes sur ce slideshare. vous trouverez comment ajouter un logo personnalisé, ajouter un CSS pour personnaliser les couleurs de l’admin, ajouter des metaboxes au dashboard…

 

Cet article a été mis à jour il y a 3401 jours - Il n'est peut être plus à jour !

Article écrit par Maxime BJ

Développeur, bloggeur et formateur Web spécialisé WordPress. 36 ans. Grenoblois. Co-fondateur de WPChef, l’organisme de formation WordPress.

Co-fondateur de WPChef, la formation WordPress pour les débutants. Vous pouvez me rencontrer lors d’événements tels que les WordCamp. Traducteur Français de l’extension Advanced Custom Fields. Je m’occupe un site pour apprendre l’informatique aux débutants gratuitement.

5 Commentaires

  1. Merci Alex ! En effet j’en ai pas mal entendu parler de ce petit Gist au WP Tech ! Et bien vu pour le ACF_LITE que j’avais oublié :)

  2. Bonjour

    Je souhaiterai retirer l’admin bar pour mes abonnés. Vous indiquez le code et le mettre dans function.php
    Ou puis je trouver le fichier “function.php” ? Est ce celui du thème ?
    J’ai bien ce fichier dans Apparence/Editeur il se nomme “fonction du thème” : function.php.
    J’ai copier /coller le code en fin de page après : endif; } mais cela ne fonctionne pas.

    Y a t’il un pluging qui fait le job ?

    Merci pour votre réponse

    • Salut ! Il faudrait que tu modifies tes fichiers via le FTP et non pas cet éditeur pour plus de sérénité.

      Sinon il n’y a normalement pas d’ordre dans le fichier functions.php donc tu peux le mettre où tu veux. Tu peux aussi détecter le rôle de l’utilisateur et appliquer cette fonction seulement si la personne est un “abonné”

      Mais normalement ça devrait fonctionner comme tu as fait