Faire passer les taxonomies personnalisées WordPress au niveau supérieur

Les taxonomies personnalisées WordPress sont un excellent moyen d'organiser le contenu de votre site Web, mais en quoi consistent-elles exactement? Comment peuvent-ils être mis en œuvre efficacement? Plus important encore, comment peuvent-ils bénéficier de votre site Web? Ne craignez rien, ce que vous êtes sur le point de lire ci-dessous est le guide le plus complet sur les taxonomies personnalisées WordPress que vous trouverez sur Internet aujourd'hui..


Notions de base sur la taxonomie

À la base, une taxonomie est simplement une méthode de regroupement des éléments. Si vous avez déjà publié un article dans WordPress, il est probable que vous ayez déjà utilisé des taxonomies. Les balises et catégories standard dans WordPress sont considérées comme des taxonomies! Parlons maintenant davantage des taxonomies personnalisées. WordPress vous a permis de créer vos propres taxonomies depuis la version 2.3. Cependant, elles ont vraiment commencé à devenir populaires depuis la version 2.9 environ..

Un moyen populaire d'expliquer les taxonomies personnalisées consiste à utiliser l'exemple du film. Imaginons que nous écrivions un article sur le film "Terminator 2". Ce que nous ferions généralement avec les taxonomies intégrées standard, est de classer l'article à l'aide de balises et de catégories. Le problème avec les taxonomies intégrées est qu'elles sont extrêmement génériques..

Nous allons continuer avec cet exemple et supposons que nous avons entré "Arnold Schwarzenegger" comme l'une de nos balises. Pour ceux qui ne connaissent pas l'acteur autrichien, cela pourrait être assez déroutant. C'est évidemment le nom d'une personne, mais cette personne est-elle un acteur? Un réalisateur? Un producteur? Une approche bien meilleure consisterait à créer une taxonomie personnalisée appelée "Acteurs" et à ajouter le nom d'Arnold à cette taxonomie particulière. Nous pourrions aller encore plus loin et ajouter des taxonomies personnalisées supplémentaires pour d'autres groupes de films typiques tels que les genres, les réalisateurs, les producteurs et autres..


Compréhension termes

Un mot que vous feriez également bien de vous familiariser avec est "terme". Dans WordPress, un terme est une classification unique qui vit dans et est définie par sa taxonomie. Dans notre exemple précédent, nous avions une taxonomie appelée "Actors". Nos termes sont donc les suivants: Arnold Schwarzenegger, Linda Hamilton, Edward Furlong, etc..


Comment les taxonomies personnalisées peuvent-elles profiter à mon site Web?

Les taxonomies personnalisées peuvent considérablement améliorer l'organisation et la convivialité de votre site Web. En raison de la flexibilité associée aux taxonomies personnalisées, elles sont toujours plus spécifiques au sujet de votre choix par rapport aux balises et aux catégories. Un exemple évident consiste à inclure vos taxonomies au bas ou au haut de votre article. Dans l'exemple ci-dessous, j'ai créé trois taxonomies personnalisées et affiché les termes associés sous la zone de contenu principale de l'article..

Cool non? Ce n'est pas la seule utilisation si. Vous remarquerez dans l'exemple ci-dessus que le texte semble être lié par un lien hypertexte, c'est parce qu'il l'est. Les taxonomies personnalisées vous permettent d'avoir des archives pour des termes spécifiques. Cela permet non seulement une meilleure organisation du contenu, mais permet également aux utilisateurs de s'abonner à des conditions spécifiques via RSS. Une autre utilisation moins utilisée des taxonomies personnalisées consiste à les utiliser simplement en remplacement des balises. J'ai décidé d'adopter cette approche exacte pour un blog de jeu que j'ai récemment lancé. Vous n'avez pas toujours besoin de souligner le fait que vous utilisez des taxonomies personnalisées, rappelez-vous simplement que leur véritable pouvoir réside dans le potentiel d'un archivage, d'une recherche, d'une interrogation et d'une structure d'URL supérieurs..

L'utilisation de taxonomies personnalisées présente plusieurs autres avantages, mais plutôt que de discuter de cas d'utilisation théoriques, examinons plutôt quelques exemples pratiques avec du code pour la sauvegarder..


Écrire notre première taxonomie personnalisée

Maintenant que nous comprenons ce que sont les taxonomies et comment les utiliser, nous pouvons commencer à les implémenter dans nos thèmes. Pour commencer, nous allons d'abord enregistrer notre taxonomie personnalisée. Dans cet exemple, je crée une taxonomie appelée "Acteurs". Si vous suivez ce tutoriel, vous voudrez ouvrir le thème de votre thème. functions.php déposer et insérer le code suivant.

 $ labels = array ('name' => __ ('Acteurs', 'votre-themes-text-domain'), 'singular_name' => __ ('Acteur', 'votre-themes-text-domain'), ' search_items '=> __ (' Acteurs de recherche ',' votre-themes-text-domain '),' popular_items '=> __ (' Acteurs populaires ',' votre-themes-text-domain '),' all_items '=> __ ('Tous les acteurs', 'votre-themes-text-domain'), 'parent_item' => __ ('Acteur parent', 'votre-themes-text-domain'), 'edit_item' => __ ('Edit Acteur ',' votre-themes-text-domain '),' update_item '=> __ (' Acteur de mise à jour ',' votre-themes-text-domain '),' add_new_item '=> __ (' Ajouter un nouvel acteur ', 'your-themes-text-domain'), 'new_item_name' => __ ('Nouvel acteur', 'votre-themes-text-domain'), 'separ_items_with_commas' => __ ('Acteurs séparés avec des virgules', 'votre -themes-text-domain '),' add_or_remove_items '=> __ (' Ajouter ou supprimer des acteurs ',' vos-themes-text-domain '),' Choose_from_most_used '=> __ (' Choisissez parmi les acteurs les plus utilisés ',' your-themes-text-domain ')); $ args = array ('labels' => $ labels, 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_nav_menus' => true, 'query_var' => true); register_taxonomy ('acteurs', 'post', $ args);

Ne vous inquiétez pas de la quantité de code ici, c'est très simple lorsque vous le décomposez. La majorité du code se trouve dans le étiquettes $ tableau. Ce tableau définit le contenu de certaines étiquettes dans le tableau de bord WordPress. le $ args le tableau est l'endroit où la vraie magie se produit; cela définit les paramètres de la taxonomie.

Vous remarquerez que pour l'argument "labels", nous transmettons le tableau de labels créé précédemment. Un autre argument qui mérite d'être mentionné est l'argument "hiérarchique". Ceci définit si nos taxonomies ont la capacité de taxonomies imbriquées, ou de taxonomies "enfantines". Dans notre exemple, nous n’exigerons pas cette fonctionnalité particulière, mais prenons note de son existence, car vous pourriez avoir besoin d’un système de taxonomie granulaire dans les projets futurs..

Expliquer chaque argument dépasse le cadre de ce tutoriel, mais si vous souhaitez en savoir plus, vous pouvez toujours étudier ces arguments en détail dans le codex WordPress officiel. register_taxonomy page.

La dernière chose à prendre note ici est l'appel à la register_taxonomy une fonction. Le premier argument définit le nom de la taxonomie (utilisé en interne dans WordPress). Le deuxième argument définit le type de message auquel la taxonomie sera attachée. Dans notre scénario, nous l'associons à des publications WordPress standard. Sinon, vous pouvez l'attacher à un type d'article personnalisé ou même à plusieurs types d'articles en lui transmettant un tableau de types d'articles..

Maintenant que nous avons enregistré notre taxonomie personnalisée avec succès, vous remarquerez que nous avons maintenant une méta-boîte "Acteurs" dans la colonne de droite de la page de modification de publication WordPress. A ce stade, l'ajout de termes dans cette méta-boîte les enregistrera dans la base de données mais ne les affichera pas au début de votre thème. Implémentons l'exemple présenté ci-dessus avec les trois listes de taxonomie, situées au bas de l'article..

Pour cet exemple, vous devrez dupliquer le code utilisé pour enregistrer deux fois la taxonomie des acteurs et renommer les étiquettes afin de refléter nos taxonomies, genres et auteurs supplémentaires. Voici ce que mon functions.php le fichier ressemble à ce jour.

 $ labels = array ('name' => __ ('Acteurs', 'votre-themes-text-domain'), 'singular_name' => __ ('Acteur', 'votre-themes-text-domain'), ' search_items '=> __ (' Acteurs de recherche ',' votre-themes-text-domain '),' popular_items '=> __ (' Acteurs populaires ',' votre-themes-text-domain '),' all_items '=> __ ('Tous les acteurs', 'votre-themes-text-domain'), 'parent_item' => __ ('Acteur parent', 'votre-themes-text-domain'), 'edit_item' => __ ('Edit Acteur ',' votre-themes-text-domain '),' update_item '=> __ (' Acteur de mise à jour ',' votre-themes-text-domain '),' add_new_item '=> __ (' Ajouter un nouvel acteur ', 'your-themes-text-domain'), 'new_item_name' => __ ('Nouvel acteur', 'votre-themes-text-domain'), 'separ_items_with_commas' => __ ('Acteurs séparés avec des virgules', 'votre -themes-text-domain '),' add_or_remove_items '=> __ (' Ajouter ou supprimer des acteurs ',' vos-themes-text-domain '),' Choose_from_most_used '=> __ (' Choisissez parmi les acteurs les plus utilisés ',' your-themes-text-domain ')); $ args = array ('labels' => $ labels, 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_nav_menus' => true, 'query_var' => true); register_taxonomy ('acteurs', 'post', $ args); $ labels = array ('name' => __ ('Genres', 'votre-themes-text-domain'), 'singular_name' => __ ('Genre', 'votre-themes-text-domain'), ' search_items '=> __ (' Genres de recherche ',' votre-themes-text-domain '),' popular_items '=> __ (' Genres populaires ',' votre-themes-text-domain '),' all_items '=> __ ('Tous les genres', 'votre-themes-text-domain'), 'parent_item' => __ ('Genre parent', 'votre-themes-text-domain'), 'edit_item' => __ ('Edit Genre ',' votre-themes-text-domain '),' update_item '=> __ (' Mettre à jour le genre ',' votre-themes-text-domain '),' add_new_item '=> __ (' Ajouter un nouveau genre ', 'your-themes-text-domain'), 'new_item_name' => __ ('Nouveau genre', 'votre-themes-text-domain'), 'separ_items_with_commas' => __ ('Séparer les genres par des virgules', 'votre -themes-text-domain '),' add_or_remove_items '=> __ (' Ajouter ou supprimer des genres ',' vos-themes-text-domain '),' choose_from_most_used '=> __ (' Choisissez parmi les genres les plus utilisés ',' your-themes-text-domain ')); $ args = array ('labels' => $ labels, 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_nav_menus' => true, 'query_var' => true); register_taxonomy ('genres', 'post', $ args); $ labels = array ('name' => __ ('Writers', 'votre-themes-text-domain'), 'singular_name' => __ ('Writer', 'votre-themes-text-domain'), ' search_items '=> __ (' Écrivains de recherche ',' votre-themes-text-domain '),' popular_items '=> __ (' Écrivains populaires ',' votre-themes-text-domain '),' all_items '=> __ ('Tous les rédacteurs', 'votre-themes-text-domain'), 'parent_item' => __ ('Auteur parent', 'votre-themes-text-domain'), 'edit_item' => __ ('Edit Writer ',' votre-themes-text-domain '),' update_item '=> __ (' Update Writer ',' votre-themes-text-domain '),' add_new_item '=> __ (' Ajouter un nouvel écrivain ', 'your-themes-text-domain'), 'new_item_name' => __ ('Nouveau écrivain', 'votre-themes-text-domain'), 'separ_items_with_commas' => __ ('Séparer les auteurs avec des virgules', 'votre -themes-text-domain '),' add_or_remove_items '=> __ (' Ajouter ou supprimer des écrivains ',' your-themes-text-domain '),' Choose_from_most_used '=> __ (' Choisissez parmi les auteurs les plus utilisés ',' your-themes-text-domain ')); $ args = array ('labels' => $ labels, 'public' => true, 'hierarchical' => false, 'show_ui' => true, 'show_in_nav_menus' => true, 'query_var' => true); register_taxonomy ('écrivains', 'post', $ args);

Maintenant que nous avons enregistré nos trois taxonomies, nous sommes prêts à afficher les taxonomies et les termes nouvellement créés dans notre thème. Assurez-vous simplement de modifier un article existant pour ajouter des termes fictifs dans les nouvelles boîtes méta de taxonomie..

Insérez le code suivant au bas de votre functions.php fichier.

 function display_post_taxonomies ($ content) if (is_single ()) $ args = array ('public' => true, '_builtin' => false); $ output = 'objets'; $ opérateur = 'et'; $ taxonomies = get_taxonomies ($ args, $ output, $ operator); if ($ taxonomies) $ content. = '
'; foreach ($ taxonomies as $ taxonomy) $ args = array ('orderby' => 'name', 'echo' => false, 'taxonomy' => $ taxonomy-> name, 'title_li' => ''. __ ($ taxonomy-> labels-> name, 'votre-themes-text-domain'). '',' show_option_none '=> __ (' Non '. $ taxonomy-> labels-> name,' votre-themes-text-domain ')); $ content. = '
    '. wp_list_categories ($ args). '
'; $ content. = '
'; return $ content; add_filter ('the_content', 'display_post_taxonomies');

En un mot, nous filtrons le contenu de la publication pour ajouter notre section taxonomie personnalisée au bas de la publication. L'utilisation d'un filtre au lieu d'une balise de modèle signifie que nous évitons de modifier des fichiers de modèle spécifiques. Non seulement cela est plus facile, mais cela nous permet également d'utiliser ce code dans plusieurs thèmes de manière plus flexible..

Vous remarquerez également que cette fonction est extrêmement générique. nous ne faisons pas du tout référence aux taxonomies que nous avons créées plus tôt. Le code ci-dessus ne concerne que les taxonomies personnalisées, appelant le get_taxonomies fonctionne avec l'index du tableau args "construit_en"Défini sur false garantit que nous n'incluons pas les taxonomies WordPress intégrées.

Nous parcourons ensuite nos taxonomies et commençons à ajouter des éléments HTML supplémentaires à des fins de formatage. Dans notre boucle, nous utilisons également le wp_list_categories une fonction. Cette fonction prépare une liste non ordonnée de termes pour une taxonomie donnée. Non seulement il gère la préparation de la structure HTML, mais il relie automatiquement chaque terme à sa page d'archive respective..

Maintenant, si vous chargez votre message, vous remarquerez que vous avez un ensemble de trois listes non ordonnées, chacune affichant un en-tête de taxonomie avec les termes associés en dessous. Le problème est qu'il n'y a pas encore de style. Ajoutez le code suivant à vos thèmes style.css déposer pour embellir un peu.

 .taxonomy_container overflow: hidden; bloc de visualisation; clarifier les deux; marge inférieure: 20 px;  .taxonomy_container ul margin: 0px; remplissage: 0px; type de style de liste: aucun;  .taxonomy_container> ul width: 31%; float: gauche; marge droite: 3,5%;  .taxonomy_container> ul: last-child marge-droite: 0%;  .taxonomy_title padding-left: 2px; rembourrage en bas: 2px; fond de bordure: solide 2px # 333; bloc de visualisation; marge inférieure: 2px; poids de police: gras;  .taxonomy_container> ul li ul li padding-left: 2px; rembourrage en bas: 3px; border-bottom: 1px en pointillé #ccc; marge inférieure: 3px;  .taxonomy_container> ul ul ul: dernier-enfant border-bottom: 0px; 

Conclusion

Voilà pour vous les gars; la première partie de notre guide pour amener les taxonomies personnalisées WordPress au niveau supérieur. Aujourd'hui, nous avons examiné ce que sont les taxonomies personnalisées, leurs qualités et leur mise en œuvre efficace dans votre thème. Dans le prochain article, nous verrons comment personnaliser votre taxonomie et vos modèles d'archive de termes..