Souhaitez-vous afficher uniquement la catégorie enfant dans votre boucle de publication WordPress ?
La plupart des thèmes WordPress afficheront automatiquement toutes les catégories d’un article, y compris les catégories parent et enfant. Et si vous vouliez uniquement afficher la catégorie enfant ?
Dans cet article, nous allons vous montrer comment afficher facilement uniquement la catégorie enfant dans votre boucle de publication WordPress.
Pourquoi et quand voudriez-vous afficher uniquement la catégorie enfant
WordPress est livré avec deux taxonomies par défaut appelées catégories et balises pour organiser votre contenu. De nombreux sites Web utilisent des balises pour des sujets spécifiques de chaque article et des catégories pour des sections de site Web plus larges.
Ensuite, il existe des sites Web qui utilisent des catégories pour définir la structure de leur site Web. Par exemple, un site Web de voyage peut utiliser des catégories pour différents types de destinations, ou un blog culinaire peut les utiliser pour différents types de cuisines.
Les catégories sont également hiérarchiques, ce qui signifie que vous pouvez créer des catégories enfants (ou des sous-catégories) pour une catégorie parent afin d’organiser davantage votre contenu. Par exemple, un site Web de voyage peut déposer un article sous Destinations » Europe où Europe est la catégorie enfant.
Par défaut, un thème WordPress afficherait toutes les catégories parent et enfant pour un article.
Cependant, la liste de toutes les catégories pour un article peut ne pas sembler aussi nette et ciblée que l’affichage de la catégorie la plus pertinente. Dans ce cas, vous souhaiterez peut-être ignorer la catégorie parent et afficher uniquement la catégorie enfant à la place.
Cela étant dit, examinons comment afficher uniquement la catégorie enfant pour un article WordPress.
Afficher uniquement la catégorie enfant pour un article WordPress
Ce didacticiel nécessite des connaissances de base sur le copier-coller d’extraits de code personnalisés dans WordPress.
Tout d’abord, vous devrez trouver le code dans vos fichiers de thème responsable de l’affichage des catégories. Cela se trouve généralement dans le fichier single.php à l’intérieur de votre thème.
Pour en savoir plus, consultez notre aide-mémoire sur la hiérarchie des modèles WordPress qui vous aide à savoir quels fichiers modèles sont utilisés pour afficher différentes sections dans un thème WordPress.
Une fois que vous avez localisé le code responsable de l’affichage des catégories, vous pouvez le remplacer par le code suivant.
// Get the IDs of child categories if any $categories = get_the_category(); foreach( $categories as $category ) { If ( $category->parent > 0 ) { $child_cat_ID[] = $category->term_id; } } // If there are no child categories then display categories If ( empty($child_cat_ID)) { echo get_the_category_list( ' , ', '' ); // display child categories only } else { $child_cat_IDs = implode(', ', $child_cat_ID); echo '<div class="post-categories">Filed under: '; wp_list_categories( array( 'separator' => ' ', 'style' => '', 'include' => $child_cat_IDs ) ); echo '</div>'; }
N’oubliez pas d’enregistrer vos modifications et de télécharger les fichiers de thème sur votre serveur.
Vous pouvez maintenant visiter votre article unique qui a une ou plusieurs catégories enfants. Vous remarquerez qu’il masquera la catégorie parent et affichera uniquement les catégories enfants.
Il y a un problème avec ce code.
Si vous avez sélectionné une catégorie parent avec des catégories enfants et une autre catégorie unique, le code ignorera la catégorie autonome. Cela signifie que dans l’exemple ci-dessous, la catégorie « Actualités » ne serait pas affichée.
S’il s’agit d’un problème pour vos besoins de conception, vous pouvez utiliser le code suivant à la place.
// Get the IDs of categories $categories = get_the_category(); foreach( $categories as $category ) { If ( $category->parent > 0 ) { $child_cat_ID[] = $category->term_id; //store child's parent category id to use later $parent_cat_ID = $category->parent; } // find categories with no parent and no child If ( $category->parent == 0 && $category->term_id !== $parent_cat_ID) { $single_category[] = $category->term_id; } } // Display part of the code // if there are no child categories then go ahead and display all categories. If ( empty($child_cat_ID)) { echo get_the_category_list( ' , ', '' ); } // If there are child categories then do this else { $child_cat_IDs = implode(', ', $child_cat_ID) ; $single_category_id = implode(', ', $single_category); // Combine child categories and categories with no children $cats_to_include = $child_cat_IDs . ', ' . $single_category_id ; // Display them echo '<div class="post-categories">Filed under: '; wp_list_categories( array( 'separator' => ' ', 'style' => '', 'include' => $cats_to_include ) ); echo '</div>'; }
Ce code exclura désormais uniquement les catégories parents. Il continuera à afficher toutes les catégories autonomes ainsi que les catégories enfants.
Nous espérons que cet article vous a aidé à apprendre à afficher uniquement la catégorie enfant dans vos publications WordPress. Vous pouvez également essayer ces astuces utiles pour le fichier de fonctions WordPress ou envisager d’utiliser ces puissants constructeurs de pages WordPress pour éviter d’écrire du code.