Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Créer des types de publication personnalisés et des taxonomies personnalisées dans WordPress par code

5

Il s’agit d’un tutoriel sur la façon de créer un type de publication personnalisé et une taxonomie personnalisée dans WordPress par code. Nous verrons les pièges courants et les arguments à utiliser pour une création minimale mais suffisante. Exemple complet inclus à la fin.

Où ajouter le code

La création de types de publication personnalisés (CPT) et de taxonomies personnalisées dans WordPress peut être effectuée dans le fichier d’un thème functions.phpou dans un plugin. Gardez à l’esprit que le type de publication personnalisé et la taxonomie personnalisée disparaîtront si vous changez de thème ou désactivez le plug-in. Il est donc sûr de supprimer temporairement l’enregistrement CPT du thème et de le déplacer dans un plugin – tant que vous conservez le même type de message personnalisé ou le même slug/ID d’identifiant de taxonomie.

Pour créer (et modifier) ​​un CPT ou une taxonomie, utilisez toujours le initcrochet. Le placer à la racine de functions.php(à l’extérieur d’un crochet) ou de tout autre crochet causera des problèmes.

Création d’un type de publication personnalisé

Pour créer un type de publication personnalisé, vous utilisez la register_post_typefonction. Il accepte deux paramètres ; d’abord l’identifiant du type de publication et ensuite un tableau avec tous les arguments.

L’identifiant du type de publication est un nom de version slug de votre type de publication. Par exemple, les articles et les pages des types de publication intégrés de WordPress sont identifiés par ‘ post‘ et ‘ page‘. L’identifiant doit être unique, il doit suivre un ensemble de règles (minuscules, pas d’espaces, etc.) et ne pas être l’un des slugs réservés de WordPress.

C’est ce que j’ai appris pour être les arguments minimum mais parfaitement suffisants pour enregistrer un type de publication; étant donné qu’il s’agit d’un CPT public normal et que vous souhaitez remplacer tous les libellés indiquant "post" ou "page" par le nom réel de votre CPT :

Un aperçu des arguments

Sachez que certains des arguments héritent des valeurs d’autres arguments. À moins qu’ils ne soient explicitement définis, ils peuvent avoir par défaut la même valeur ou l’opposé d’un autre. Plusieurs arguments héritent de la même valeur ou de la valeur opposée de l’argument public. Lisez la documentation pour voir quelle est la valeur par défaut pour chaque argument et si vous devez la remplacer.

Si vous êtes d’accord pour avoir des textes dans l’administration qui font référence à votre type de message comme "post" ou "page", vous pouvez ignorer la définition des arguments d’étiquette. Vous serez probablement d’accord avec seulement label(nom au pluriel) et à l’intérieur du labelstableau juste singular_name(nom au singulier).

Si vous ne définissez pas explicitement la show_in_restvaleur true, votre type pos personnalisé utilisera l’ancien éditeur classique. Si vous souhaitez utiliser l’éditeur Gutenberg pour votre type de publication personnalisé, vous devez définir show_in_restsur true.

L’ supportsargument indique quels éléments sont disponibles lors de la modification d’un article dans votre type d’article. Au minimum, vous voulez probablement le titre, l’éditeur et l’image de publication en vedette.

L’ rewriteargument avec le minimum d’élément de tableau slugindique à WordPress de réécrire tous les articles singuliers de votre type d’article pour utiliser ce slug de préfixe. Dans l’exemple ci-dessus, un article de livre singulier obtiendrait une URL du type ; " http://example.com/book/i-robot/ ". Si vous souhaitez savoir comment ajouter un paramètre de règle de permalien dans l’administrateur pour permettre aux utilisateurs du thème de décider eux-mêmes de ce slug, consultez cet article.

L’argument de l’icône de menu (menu_icon) peut être l’un des Dashicons suivants, ou vous pouvez le laisser vide pour conserver la valeur par défaut. La valeur par défaut est la même icône que les publications. C’est cependant une bonne idée de séparer clairement vos types de publication personnalisés.

La position du menu (menu_position) vous permet de décider de la position de votre type de message personnalisé dans le menu admin. La documentation répertorie toutes les positions du menu d’administration, vous pouvez donc vous ajuster. la position 5 est juste après ‘Messages’.

Il y a un autre argument (taxonomies) pour attacher une taxonomie au type de publication. Nous verrons comment ajouter une taxonomie personnalisée plus loin dans cet article. Pour ajouter des taxonomies à votre type de publication, ajoutez cet argument au tableau ci-dessus ;

Une note sur les permaliens et les erreurs 404 introuvables

Après avoir ajouté votre code pour enregistrer un type de message personnalisé, vous remarquerez que l’affichage d’un seul message renverra l’erreur "404 introuvable". C’est parce que vous devez "rafraîchir les permaliens".

Allez dans Paramètres > Permaliens, et cliquez simplement sur le bouton "Enregistrer les modifications" (pas besoin de changer quoi que ce soit).

Gardez à l’esprit que chaque fois que vous modifiez l’ rewriteattribut, vous devrez à nouveau actualiser les permaliens.

Création d’une taxonomie personnalisée

Une taxonomie personnalisée peut être attachée à l’un des types de publication de WordPress (publications, pages) ou à un type de publication personnalisé. Vous pouvez également attacher plusieurs taxonomies à un type de publication. Lorsque vous enregistrez une taxonomie, vous devez fournir le ou les types de publication auxquels vous souhaitez qu’elle soit jointe.

Une taxonomie peut être hiérarchique (comme les catégories de publication où vous pouvez créer une structure arborescente) ou basée sur des balises (comme les balises de publication). C’est vraiment la seule considération que vous devez connaître au préalable, à l’exception de son identifiant slug. Comme pour les CPT, la limace d’identification d’une taxonomie doit être unique et suivre un ensemble de règles.

Pour enregistrer une taxonomie personnalisée, vous utilisez la register_taxonomyfonction. Le register_taxonomyaccepte le slug d’identifiant unique de taxonomie comme premier argument, un tableau de types de publication auquel l’attacher en second, et enfin un tableau avec tout le reste des arguments. Il y a beaucoup d’arguments, mais c’est ce que j’ai vécu comme étant le minimum mais suffisant pour enregistrer une taxonomie personnalisée (cela ajoute une taxonomie de type balise/non hiérarchique):

Il est recommandé d’ajouter un appel de fonction juste après le register_taxonomy, pour s’assurer qu’il est correctement «attaché» au CPT: register_taxonomy_for_object_type. Définissez votre taxonomie comme premier argument et le CPT comme second :

register_taxonomy_for_object_type('book_author', 'book');

De même que le type de message ci-dessus, register_taxonomyaccepte beaucoup plus d’arguments, et beaucoup d’entre eux héritent ou dépendent de la valeur d’autres arguments. Lisez la documentation pour voir quelle est la valeur par défaut pour chaque argument et si vous devez la remplacer.

Un aperçu des arguments

Si vous êtes d’accord pour avoir des textes qui font référence à votre taxonomie en tant que "tag" (si hiérarchique est faux) ou "catégorie" (si hiérarchique est vrai), vous pouvez probablement ignorer tout le labelstableau à l’exception peut-être de singular_name.

Le show_admin_columnest pratique pour ajouter une colonne montrant les termes associés dans votre taxonomie dans votre écran d’administration CPT. Tout comme dans les publications, vous voyez une colonne affichant les catégories associées. Cet argument est défini par défaut sur false(ne pas afficher la colonne), donc j’aime le remplacer.

La définition show_in_restsur true est nécessaire pour que votre taxonomie soit visible dans Post edit dans l’éditeur Gutenberg, car Gutenberg s’appuie sur l’API REST.

De même qu’avec les types de publication personnalisés, vous obtiendrez probablement des erreurs "404 introuvables" sur votre taxonomie personnalisée. Allez dans Paramètres> Permaliens et cliquez simplement sur le bouton "Enregistrer les modifications".

Exemple de code complet

Voici un exemple complet de création d’un CPT pour les livres et d’association de deux taxonomies personnalisées ; genre (hiérarchique) et auteur du livre (tag).

Source d’enregistrement: awhitepixel.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More