Les custom post types de WordPress peuvent facilement être personnalisés en ajoutant un icône correspondant au contenu.
Vos utilisateurs y gagneront en ergonomie et votre back office aura une allure des plus professionnelles.
2 méthodes existent pour ajouter un icône :
- La première reste la plus simple bien qu’elle ne permette pas d’appliquer un état de survol. L’image restera identique quel que soit l’état. Le seul préalable est de créer une image de 16 pixels par 16 pixels ;
- La seconde, légèrement plus complexe, prend en charge l’état survolé mais nécessite l’ajout de lignes de code supplémentaires. Des packs d’icônes sont disponibles au téléchargement de façon gratuite ;
Nous allons voir ensemble les 2 méthodes dans ce tutoriel, accompagné d’un podcast vidéo HD.
Méthode n°1 – Modification du custom post types
La plupart du temps les custom post types sont initialisés dans le fichier functions.php mais peuvent l’être dans un fichier dédié. A vous d’effectuer une recherche de la fonction register_post_type
.
Ajoutez ensuite la ligne de code suivante dans les paramètres :
Pour vous donner un aperçu complet, voici le code complet pour créer un custom post types intitulé Podcasts :
Il vous suffit de modifier l’URL du fichier image comme dans cet exemple.
Retournez à présent dans le back office de WordPress puis remarquez l’apparition de votre icône pour le custom post type concerné.
Méthode n°2 – Ajout d’un style CSS via le functions.php
Cette seconde nous permet d’ajouter un icône via le CSS de l’administration de WordPress. Elle est incompatible avec la première : retirez donc la ligne de code ajoutée si tel est le cas.
Ouvrez donc le fichier functions.php puis ajoutez les lignes suivantes en fin de fichier :
Mon custom post type s’intitule podcast au singulier. Il vous suffit de modifier ce terme dans les lignes ci-dessous. Pour vous aider, utilisez Firebug puis analyser l’icône d’un ou plusieurs éléments.
Modifiez également l’URL de l’icône associé aux différents états. Dans mon cas, le lien est identique car j’utilise cet excellent pack d’icônes prêts-à-l’emploi :
Pack d'icônes pour les custom post types de WordPress, prêts-à-l'emploi.
Taille : 4,7 Mo • Hits : 1 636Il ne vous reste plus qu’à piocher dans ce pack de qualité puis de les envoyer dans un dossier images de votre thème – par exemple.
Ce tutoriel vous montre une fois de plus la capacité de personnalisation du back office de WordPress pour une utilisation en marque blanche du CMS.
salut je voudrais un construire un site immobilier pouvez-vous m’indiquer un theme gratuit parfait ?
Un thème sur-mesure obligatoirement. 😉
Bonjour,
je fais la méthode 2..;et j’obtiens ma nouvelle icône mais au dessus en surimpression reste l’épingle…et je ne vois pas où la retirer..Merci de votre aide.
La méthode 1 est conseillée depuis WordPress 3.8 qui intègre les dashicons.
Je souhaite initialiser mes CPT dans un fichier dédié (et non dans le fichier functions.php), j’ai fait quelques recherches, comme indiqué au début de ce post, mais rien…
En créant un fichier register-post-type.php ça ne fonctionne pas… Une piste ?
pour la première solution, j’ai eu un problème en utilisant get_bloginfo(‘template_directory’). En utilisant get_stylesheet_directory_uri() à la place, ça marche.
Effectivement il faut inverser les positions des deux icônes pour les utiliser correctement. Mais il reste un petit problème : comment faire pour que l’icône s’affiche en grand sur la page de saisie des post custom et non les deux ?
Il doit falloir ajouter / modifier une propriété CSS de plus. As-tu regardé avec Firebug ?
Merci pour ta réponse, mais j’ai trouvé une autre solution :
il faut créer une icône 32×32 et lui donner un autre nom (“monicon32.png” par exemple) et mettre ce nom dans la ligne de code “#icon-edit.icon32_post-….”
Voilà, ce n’est pas très compliqué.
Super, merci du retour ! 😎
Une petite remarque tout de même, si tu utilises les icônes de “Fuge Edition” il faut faire une petite modification du CSS, car la position des deux états dans le png ne correspond pas avec les CSS qui est indiqué.
C’est à dire que l’icône est colorée à l’état normal et grisé lors du survol, ce qui est l’inverse de toutes les autres icônes.
Pour modifier il faut donc modifier les background position des deux états css :
#menu-posts-custom_post_slug .wp-menu-image {
background: url(“/images/mon_icone_perso.png”) no-repeat 6px -17px !important;
}
#menu-posts-custom_post_slug:hover .wp-menu-image, #menu-posts-custom_post_slug.wp-has-current-submenu .wp-menu-image {
background-position:6px 7px !important;
}
Hmmmm, il est tout à fait possible de faire un effet de rollover avec la première technique également : en utilisant des sprites.
Ça aurait été pas mal d’ailleurs de montrer à l’utilisateur ce fonctionnement des sprites, qui est vraiment très très utile dans ce genre de cas, que ce soit le premier ou le deuxième.
Tu peux nous détailler ta méthode pour la première technique ? Sans CSS, comment comptes-tu créer le déplacement d’image ?
Il faut obligatoirement du CSS bien sûr.
En utilisant cette technique par exemple :
http://css-tricks.com/3427-css-sprites-with-inline-images/
http://www.sohtanaka.com/web-design/css-sprites-wout-background-images/
Il est d’ailleurs possible d’utiliser les transitions CSS3 pour rendre tout ça un peu plus “fancy”.
Ou encore il est possible d’afficher une partie transparente du sprite en html et d’afficher la partie icone avec un background CSS.