Comment créer une taxonomie personnalisée

Publié: 2016-09-07

Ceci est le deuxième article d'une série en 3 parties sur le thème des types de publication personnalisés (CPT). Les sujets abordés dans les deux autres articles sont :

  • Types de publication personnalisés et comment les créer
  • Affichage des types de publication personnalisés - modèles et requêtes

Dans cet article de blog, nous verrons comment créer une taxonomie personnalisée et comment la connecter à un type de publication personnalisé.

Qu'est-ce qu'une taxonomie personnalisée ?

Commençons par juste, qu'est-ce qu'une taxonomie ? J'aime la définition officielle de WordPress : une taxonomie est un moyen de regrouper des éléments.

WordPress a 4 taxonomies par défaut : Catégorie, Tag, Catégorie de lien et Formats de publication. Les catégories et les balises sont certainement les plus utilisées des quatre. La taxonomie des catégories vous permet de regrouper les articles dans des catégories logiques, que vous pouvez définir vous-même. La taxonomie des balises est très similaire, mais peut être utilisée plus librement. Un seul groupe dans une taxonomie est appelé un terme. Chaque taxonomie a également sa page « index », où sont affichés tous les articles du même terme (les URL de ces pages ressemblent à : 'taxonomy/term' ).

Ainsi, une taxonomie personnalisée est exactement ce que son nom l'indique, c'est votre propre groupe personnalisé de messages (ou types de messages personnalisés). Si nous avions une critique de livre en tant que type de publication personnalisé, un bon exemple de taxonomie personnalisée serait les genres de livres.

Juste pour rafraîchir la mémoire : dans l'article précédent sur les types de publication personnalisés, nous avons utilisé l'exemple CPT de témoignages pour notre thème Shaka, nous continuerons donc à l'utiliser ici également.

Nous avons donc le type de message personnalisé Témoignages. Quel genre de taxonomies personnalisées voudrions-nous ? Quels groupes auraient du sens pour ce cas d'utilisation ? Nous pourrions regrouper les témoignages en fonction du service auquel ils faisaient référence. On pourrait donc avoir une taxonomie personnalisée des services (surf, kite, plongée). Une autre taxonomie personnalisée pourrait être les emplacements, où les utilisateurs ont expérimenté ce service, etc.

Vous pouvez créer une taxonomie personnalisée pour chaque groupe logique auquel vous pouvez penser.

Comment pouvez-vous créer une taxonomie personnalisée ?

Tout comme avec les types de publication personnalisés, il existe deux façons d'enregistrer une taxonomie personnalisée. Vous pouvez le créer avec un plugin ou vous pouvez écrire un peu de code PHP.

Les raisons et les cas d'utilisation pour savoir quand le faire via un plugin ou avec du code sont les mêmes que pour les CPT, alors veuillez le vérifier dans le premier article.

Ici, nous verrons simplement comment créer la taxonomie personnalisée et comment la connecter au type de publication personnalisé.

Créez une taxonomie personnalisée avec un plugin - le moyen le plus simple

Nous utiliserons le plugin Custom Post Type UI , pour enregistrer la taxonomie personnalisée, tout comme nous l'avons fait pour le CPT dans l'article précédent :

  1. Installez et activez le plugin Custom Post Type UI depuis votre tableau de bord wp-admin,
  2. Une fois que vous avez activé le plugin, l'élément de menu d'administration de l'interface utilisateur CPT sera disponible . Accédez à l'interface utilisateur CPT -> Ajouter/Modifier une taxonomie
  3. Saisissez le slug de taxonomie, le nom au pluriel et au singulier, puis vous devez sélectionner le type de publication auquel attacher cette taxonomie personnalisée nouvellement créée (les autres paramètres par défaut sont corrects). Dans notre cas, nous avons nommé notre taxonomie personnalisée : testimonial_service et nous l'avons attachée au type de publication personnalisée de témoignages, que nous avons enregistré dans l'article précédent : Ajouter une taxonomie
  4. Si nous regardons maintenant l'écran de création d'un nouveau type de message personnalisé de témoignage, vous verrez la méta-boîte des services de témoignages sur le côté droit et également un élément de sous-menu sur la gauche : Ajouter-nouveau-témoignage
  5. Ça y est, nous pouvons maintenant ajouter de nouveaux services qui regrouperont les témoignages en fonction des services auxquels ils font référence.

Créer une taxonomie personnalisée manuellement - codage impliqué

Oui, le titre dit que le codage est impliqué, mais ce n'est pas vraiment vrai

Vous pouvez utiliser le générateur de code WP pour générer le code de taxonomie personnalisé. Cliquez simplement sur les onglets en haut et entrez les détails de votre taxonomie personnalisée. Le générateur affichera un code d'enregistrement de taxonomie personnalisé valide :

 // Register Custom Taxonomy function custom_taxonomy_testimonial_service() { $labels = array( 'name' => _x( 'Testimonial Services', 'Taxonomy General Name', 'text_domain' ), 'singular_name' => _x( 'Testimonial Service', 'Taxonomy Singular Name', 'text_domain' ), 'menu_name' => __( 'Testimonial Services', 'text_domain' ), 'all_items' => __( 'All Items', 'text_domain' ), 'parent_item' => __( 'Parent Item', 'text_domain' ), 'parent_item_colon' => __( 'Parent Item:', 'text_domain' ), 'new_item_name' => __( 'New Item Name', 'text_domain' ), 'add_new_item' => __( 'Add New Item', 'text_domain' ), 'edit_item' => __( 'Edit Item', 'text_domain' ), 'update_item' => __( 'Update Item', 'text_domain' ), 'view_item' => __( 'View Item', 'text_domain' ), 'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ), 'add_or_remove_items' => __( 'Add or remove items', 'text_domain' ), 'choose_from_most_used' => __( 'Choose from the most used', 'text_domain' ), 'popular_items' => __( 'Popular Items', 'text_domain' ), 'search_items' => __( 'Search Items', 'text_domain' ), 'not_found' => __( 'Not Found', 'text_domain' ), 'no_terms' => __( 'No items', 'text_domain' ), 'items_list' => __( 'Items list', 'text_domain' ), 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), ); $args = array( 'labels' => $labels, 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true, ); register_taxonomy( 'testimonial_service', array( 'testimonials' ), $args ); } add_action( 'init', 'custom_taxonomy_testimonial_service', 0 );

Vous pouvez coller ce code dans un plugin nouvellement créé ou dans le fichier functions.php du thème. J'ai collé le code directement dans le fichier functions.php, car c'est plus pratique pour cet exemple. L'élément de sous-menu Services de témoignage est apparu dans le menu du tableau de bord d'administration des témoignages et la boîte de méta est également là, tout comme sur la capture d'écran dans la configuration du plugin ci-dessus.

L'enregistrement manuel de la taxonomie personnalisée fonctionne, alors analysons le code et voyons exactement ce qu'il fait. La structure du code est très similaire à l'enregistrement du type de publication personnalisé dans le premier article, mais elle varie dans quelques paramètres et appels de fonction :

  • Nous accrochons la fonction custom_taxonomy_testimonial_service dans l'action WP init afin d'enregistrer la taxonomie personnalisée,
  • Le premier bloc de code à l'intérieur de la fonction est un tableau d'étiquettes, où vous pouvez modifier les mots qui seront utilisés lors de la création/modification de taxonomies personnalisées. Conseil : Je vous recommande d'utiliser les fonctions d'internationalisation d'échappement. Ainsi, au lieu de _x() et __() j'utiliserais esc_html_x() et esc_html__() ,
  • Le deuxième bloc est un tableau d'arguments/paramètres pour la taxonomie personnalisée. Vous pouvez consulter la documentation officielle de WP, pour voir quels arguments vous pouvez définir,
  • Avec le register_taxonomy( 'testimonial_service', array( 'testimonials' ), $args ); appel, nous enregistrons la taxonomie personnalisée testimonial_service qui « s'attachera » au type de publication personnalisé testimonials avec les arguments $args .

Maintenant que nous avons enregistré le type de publication personnalisé et la taxonomie personnalisée, il ne nous reste plus qu'à les afficher sur notre site WordPress. Ce sera le sujet du prochain et dernier article de blog sur les types de publication personnalisés.