Le guide ultime des types de publications personnalisés WordPress
Publié: 2024-03-26Il y a plus de dix ans, j'ai pris la décision qui a changé ma vie et ma carrière de me concentrer uniquement sur l'utilisation de WordPress comme plate-forme de publication et du CMS pour lequel je crée des plugins. Les principales raisons étaient l’excellente documentation, comprenant d’innombrables articles contenant des extraits de code et des didacticiels, ainsi que la facilité d’extension de WordPress. Pour mes cas d’utilisation à l’époque, la fonctionnalité la plus importante pour étendre WordPress était les types de publication personnalisés.
Améliorés principalement avec la version 3 de WordPress en 2010, les types de publications personnalisés (CPT) sont utilisés de plusieurs manières. Je suis sûr que vous les avez rencontrés sans le savoir. Permettez-moi de vous donner un aperçu des CPT, des exemples spécifiques de la façon dont je les ai utilisés au fil du temps, comment les configurer vous-même et comment accomplir encore plus avec les plugins associés.
Que sont les types de publications personnalisés ?
Le noyau WordPress est livré avec différents types de publication. Les plus évidents sont les publications, les pages et les pièces jointes.
Dans WordPress 6.4, il y en a quatre autres :
- Révisions
- Menus de navigation
- Modèles de blocs
- Pièces de modèle
Fait amusant : les commentaires ne sont pas un type de publication. Je pense que si WordPress n’était pas à l’origine une plateforme de blogs avec des commentaires comme élément central, on les traiterait également aujourd’hui comme un type de publication.
Comme cela pourrait le suggérer, les types de publication ne sont pas toujours évidents et ne sont pas nécessairement quelque chose de visible dans le frontend que nous décririons comme du « contenu ». Il s’agit plutôt d’un groupe d’éléments liés dans la base de données.
Vous pouvez ajouter d'autres de ces « éléments », qui seraient alors appelés types de publication « personnalisés ».
Ce n'est pas un terme WordPress officiel, mais j'aime l'expression Types de « contenu » personnalisés pour tout type de publication personnalisé visible. J'aborderai quelques exemples plus tard.
Pourquoi utiliser un type de publication personnalisé ?
WP Mayor a utilisé plusieurs types de publication personnalisés au fil du temps, tels que celui des offres à vie que vous pouvez voir actuellement.
J'ai personnellement utilisé les types de publication personnalisés pour de nombreuses choses.
Les plus courantes sont les sections de contenu distinctes sur les sites Web. Cela est plus logique lorsque ce contenu doit s'afficher et se comporter différemment des publications et des pages intégrées.
Imaginons que WP Mayor dispose également d'un type de publication dédié « Actualités ». En enregistrant simplement ce type de publication personnalisé, vous bénéficierez des avantages suivants :
- Un élément « Actualités » distinct dans le menu de WP Admin.
- La possibilité d'accorder aux utilisateurs et aux rôles d'utilisateur des capacités différentes pour ce type.
- Ayez différents modèles pour afficher des actualités uniques sur le frontend.
- Une archive séparée et un flux d'actualités.
- Les métadonnées de publication supplémentaires sont stockées et affichées uniquement avec les actualités.
J'ai également utilisé des types de publication personnalisés pour les éléments de contenu dans divers plugins. Une fois, j'ai construit une plate-forme de réservation pour les maisons de vacances, où les maisons, les réservations et les paiements constituaient chacun un type de publication personnalisé distinct avec des attributs uniques. C’est quelque chose que font également la plupart des plugins de commerce électronique pour WordPress.
Dans un autre cas, je voulais enregistrer le contenu de tous les e-mails sortants. J’ai donc créé un type de publication « Journal » avec le contenu de l’e-mail et toutes les métadonnées jointes qui n’étaient visibles qu’avec les fonctionnalités appropriées dans le backend WordPress.
Enfin, le plugin Advanced Ads que j'ai développé à l'origine utilisait un CPT pour stocker le contenu publicitaire.
Ce ne sont là que quelques exemples de types de publications personnalisés. Je sais que j'ai dû oublier de mentionner de nombreux autres cas d'utilisation passionnants que j'ai rencontrés au fil des ans.
Le principal avantage des CPT dans WordPress est qu’ils ne nécessitent que quelques lignes de code ou une configuration rapide via un plugin, et WordPress prend en charge une grande partie de la logique dont vous avez besoin pour les gérer et les afficher sur votre site. Voyons donc directement comment créer des types de publication personnalisés WordPress.
Création d'un type de publication personnalisé
Les types de publication personnalisés peuvent être créés manuellement ou via un plugin.
Si vous n'avez aucune expérience en codage, les plugins vous permettent de créer beaucoup plus facilement des types de publication personnalisés.
L’un des inconvénients de l’utilisation d’un plugin est que votre type de publication personnalisé disparaît dès que vous supprimez le plugin. Bien qu’il existe probablement encore dans la base de données, WordPress n’en a plus connaissance ni dans le frontend ni dans le backend.
En tant que développeur ayant fait cela des dizaines de fois, je préfère toujours la méthode manuelle. Cependant, j'avoue volontiers que j'utilise également des plugins avec de belles interfaces utilisateur si le type de publication personnalisé WordPress est utilisé temporairement ou pour créer une vitrine pour un client.
Décisions pour les types de publication personnalisés
Malgré la méthode que nous utilisons pour créer notre type de publication personnalisé, nous devons d'abord prendre quelques décisions. Bien que vous puissiez théoriquement modifier n'importe lequel d'entre eux plus tard, cela pourrait avoir un impact considérable sur votre site et votre configuration, il est donc préférable d'y réfléchir à l'avance.
Publique ou pas ?
La principale décision concernant les types de publication personnalisés est de savoir qui doit les voir et interagir avec eux. Avec votre code personnalisé ou au sein d'un plugin, vous pouvez choisir si le CPT est visible dans le frontend, y compris les archives et les pages uniques accessibles directement, et si les utilisateurs le trouvent via la recherche. Doit-il apparaître sur le backend de votre site WordPress avec son élément de menu ?
Bien qu'un CPT « Actualités » soit probablement entièrement visible dans le frontend, un journal interne ou quelque chose comme les paiements peut être limité aux utilisateurs ayant un rôle spécifique dans votre backend WordPress.
Hiérarchique
Vous avez peut-être remarqué que les types de publication WordPress Posts et Pages se comportent légèrement différemment. Les pages n'ont pas d'archive dans le frontend, mais vous pouvez avoir des pages parent et enfant.
Cette dernière est appelée « hiérarchie », qui est également définie lors de la création de votre propre type de publication.
Pour les types de publication hiérarchiques, la page d'édition offre la possibilité de choisir une page parent et une commande.
L'ordre et la page parent peuvent être importants lors de la création automatique de menus ou de listes à partir de pages. La hiérarchie est également visible dans le slug de l'URL. Si ma page était « Dépannage » avec « Documentation » comme page parent, l'URL finale pourrait être documentation/troubleshooting
.
Astuce : Si vous disposez d'un CPT avec une hiérarchie plus profonde, je vous recommande d'utiliser le plugin Nested Pages pour organiser rapidement les publications dans le bon ordre.
Éditeur de blocs ou classique
Lors de la création d'un type de publication personnalisé, il vous est demandé si vous souhaitez l'afficher ou non dans « l'API REST ». Ce terme technique fait une chose cruciale : il détermine si votre CPT utilise l'éditeur de blocs ou la vue de l'éditeur classique.
En règle générale, l’utilisation de l’éditeur de blocs est logique si votre type de publication est similaire au contenu normal et que vous souhaitez utiliser des blocs WordPress. Tout type de publication personnalisé qui n’a pas besoin d’une grande partie de l’écran pour le contenu doit choisir l’éditeur classique. Par conséquent, il ne doit pas être fourni via l’API REST.
Slugs et structure d'URL
Une autre décision cruciale que vous devez prendre est de nommer le slug CPT. Notre type de publication « Actualités » peut être référencé comme news
dans l'URL, mais si vous avez des noms internes plus sophistiqués, vous souhaiterez peut-être choisir une forme courte pour les URL frontales.
Cela pourrait être une décision importante pour votre référencement, alors prenez quelques minutes pour y réfléchir.
Éléments pris en charge
En fonction du type de publication que vous créez, vous souhaiterez peut-être également décider dès le départ si vous souhaitez activer la prise en charge des éléments suivants :
- Titres (activés par défaut)
- L'éditeur apparaît (activé par défaut)
- commentaires
- Révisions
- Auteurs
- Extraits
- Miniatures
Il existe de nombreuses autres options à affiner. Cependant, les éléments ci-dessus sont les plus importants à prendre en compte avant d’utiliser notre type de publication personnalisé WordPress.
Créer un type de publication personnalisé avec un plugin
Dans cet esprit, examinons la création de types de publication personnalisés à l'aide d'un plugin, puis faisons de même manuellement.
J'utilise l'un des logiciels gratuits les plus populaires de wordpress.org : Custom Post Type UI (CPTUI) de WebDevStudios.
Leur interface est assez simple, avec toutes les options que l’on peut attendre d’un plugin Custom Post Types. Cependant, cela indique également clairement que les types de publication personnalisés restent un concept abstrait à comprendre et non une fonctionnalité qu’un éditeur WordPress habituel devrait bricoler sans une connaissance plus approfondie des options.
Astuce : je suis personnellement conservateur sur les options « publiques » pour mes CPT et je les limite autant que possible quant à savoir qui devrait les voir dans le frontend et qui devrait pouvoir les modifier dans le backend. Si nécessaire, vous pourrez toujours accorder davantage d'accès ultérieurement.
Avantages de l'interface utilisateur de type de publication personnalisée
Il y a quelques choses que j'aime dans ce plugin que d'autres pourraient avoir ou non.
Je crée généralement mes CPT manuellement, je sais donc que la rédaction des étiquettes prend beaucoup de temps. Il y en a environ trois douzaines si vous souhaitez tous les ajuster pour mentionner le nom de votre CPT. Comme vous pouvez le voir dans la capture d'écran ci-dessus, le plugin Custom Post Type UI dispose d'une option pour remplir automatiquement ces étiquettes pour vous. Vous pourrez toujours les ajuster ultérieurement dans l’interface.
Ensuite, je peux enregistrer mon type de publication personnalisé et le modifier plus tard . Je peux même changer le slug, et le plugin migrera alors toutes les publications de ce type . Même si j'essaierais d'éviter une situation dans laquelle j'en aurais besoin, il est bon de savoir que c'est possible et géré par le plugin.
L’interface utilisateur de type de publication personnalisée conserve un aperçu de mes types de publication . Même si cela semble un peu écrasant, il est beaucoup plus facile à réviser que le code personnalisé. J'aime aussi voir la liste des modèles dans la dernière colonne.
Ces modèles font partie de la magie des types de publication personnalisés WordPress. Si notre News CPT utilisait les slug news
, WordPress rechercherait automatiquement un fichier appelé archive-news.php
dans votre thème pour afficher la page d'archive de ce type de publication ou single-news.php
pour une seule page d'actualités. Voir Hiérarchie des modèles pour plus d'informations.
Générer du code avec CPTUI
La fonctionnalité qui m'a finalement fait recommander l'interface utilisateur de type de publication personnalisée était l'outil permettant d' exporter le CPT en code PHP . Sous CPT UI > Tools > Get Code, vous trouverez le code PHP à utiliser dans votre plugin ou functions.php
. Félicitations aux développeurs du plugin pour ne pas enfermer les gens.
Cela fait de CPTUI un outil idéal pour les développeurs puisque nous pouvons rapidement configurer un type de publication personnalisé via l'interface, puis obtenir le code PHP pour l'utiliser. Nous pouvons même laisser notre client le configurer sur un site de test (avec toutes les étiquettes, etc.), puis le migrer là où nous en avons besoin.
La seule option que je n'ai pas trouvée dans le plugin est de supprimer le type de publication personnalisé avec toutes ses entités. En général, si vous supprimez un plugin ou un code, les publications personnalisées resteront dans la base de données. Cependant, il existe des plugins dédiés pour nettoyer cela.
Utiliser du code
Si vous êtes un développeur et souhaitez implémenter un type de publication personnalisé à l'aide de code, laissez-moi vous indiquer les sections pertinentes de la documentation WordPress.
La fonction principale pour enregistrer un nouveau type de publication personnalisé est la fonction register_post_type. Ses paramètres vous permettent de définir toutes les options que j'ai mentionnées ci-dessus.
Tous les types de publication sont stockés dans la table wp_posts
de votre base de données. Le champ post_type
détermine à quelle entrée appartient un type de publication.
Vous pouvez utiliser les métadonnées de publication si votre type de publication personnalisé ne se limite pas au contenu. Ces données sont stockées dans wp_postmeta
.
D’ailleurs, certains plugins utilisent des tables personnalisées pour gérer les types de contenu. N'empruntez pas cette voie à moins que vous n'y soyez vraiment obligé, car vous ne pourrez pas utiliser toutes les fonctionnalités et fonctions WordPress intégrées fournies avec l'API des types de publication personnalisés.
Étendre les types de publication personnalisés
Si votre type de publication personnalisé est public, vous souhaiterez peut-être le personnaliser encore davantage. Voici quelques options.
Champs personnalisés et méta-boîtes
Les CPT plus avancés, comme les événements ou les articles de boutique, nécessitent plus que du contenu. C'est là que les champs personnalisés entrent en jeu. Ils proposent des champs de saisie pour structurer vos données de différentes manières. Par exemple, un type de publication « Événement » peut nécessiter une date de début et de fin ou un lieu afin que les événements puissent être affichés et filtrés.
Bien que vous puissiez ajouter des champs personnalisés et des méta-boîtes avec du code personnalisé, le très connu Advanced Custom Fields est un excellent plugin pour cela. Il propose tellement d'options et est si bien entretenu que même moi, en tant que développeur, je ne coderais pas de champs personnalisés sur mes propres sites.
Taxonomies personnalisées
Comme le type de publication par défaut « Messages » peut être commandé avec « Catégories » et « Balises », vous pouvez également enregistrer des taxonomies pour votre type de publication personnalisé.
Le plugin Custom Post Type UI que j’ai recommandé ci-dessus vous aide également à les créer.
Gestion des capacités
Vous pouvez utiliser des plugins tels que Members pour créer un nouveau rôle pour les auteurs de votre site qui peuvent uniquement créer et modifier votre nouveau type de publication personnalisé ou ajuster les rôles d'utilisateur associés existants. Ceci est recommandé si votre flux de travail éditorial est différent pour chaque type de publication.
Changer de type de message
Je réorganise actuellement le contenu dans une base de connaissances interne construite avec WordPress. Les articles et les pages ont ici des objectifs très différents. Certains d’entre eux ont changé d’objectifs, j’avais donc besoin d’une solution pour changer de type de publication.
Bien que je ne recommanderais pas de faire cela à la légère avec un type de publication public, cela ne pose aucun problème sur un site non public avec des types de publication similaires. Pour ce faire, j'ai installé le Post Type Switcher, un excellent plugin qui vous permet de le faire sans problème. Après l'avoir installé, le plugin ajoutera une section « Type de publication » sur l'écran « Modifier la publication ». Vous pouvez utiliser cette interface pour modifier les types de publication selon vos besoins.
Conclusion
Je considère toujours les types de publication personnalisés comme une fonctionnalité essentielle qui a permis à WordPress de prospérer au cours de la dernière décennie et au-delà. C’est la base qui a transformé notre CMS préféré d’une simple plateforme de blogs en un outil polyvalent de gestion d’événements ou d’achats en ligne.
Lors de la création de plugins utilisés sur de nombreux sites Web, je rencontre toujours du code pour créer de nouveaux types de publications. Mais lorsque je crée des sites pour moi et mes clients, j'utilise des plugins. Ils rendent la création et la modification des types de publication personnalisés beaucoup plus simples et disposent d'une bien meilleure interface utilisateur que celle que je pourrais jamais créer.