Afficher tous les tags sur WordPress
L’objet WP_Term_Query
a fait son apparition dans WordPress 4.6.0 et remplace les fonctions
, get_terms()
, get_tags()
et get_categories()
. Il permet de requêter facilement la base de données de WordPress pour y récupérer tous types de termes (tags, catégories ou autres taxonomies personnalisées).get_taxonomies()
Récupération des tags avec WP_Term_Query
Lançons une requête simple permettant de récupérer uniquement les tags (exclut les catégories), en intégrant les tags liés à aucun article.
<?php
$query = new WP_Term_Query([
'taxonomy' => 'post_tag',
'hide_empty' => false,
]);
?>
Trions ensuite le résultat pour que les tags ayant le plus d’articles soient récupérés en premier
<?php
$query = new WP_Term_Query([
'taxonomy' => 'post_tag',
'hide_empty' => false,
'orderby' => 'count',
'order' => 'DESC',
]);
?>
Pour continuer de personnaliser votre requête, il suffit de consulter la documentation officielle pour connaître les paramètres autorisés
Afficher les tags
Nous allons maintenant utiliser notre variable $query
qui représente un objet de type WP_Term_Query
pour afficher nos tags. La propriété $query->terms
représente un tableau des tags que nous allons parcourir à l’aide d’un foreach
pour afficher chacun de nos tags.
<?php foreach ($query->terms as $tag) : ?>
<a href="<?= get_term_link($tag->term_id); ?>">
<?= $tag->name ?> (<?= $tag->count ?>)
</a>
<?php endforeach; ?>
Il ne reste plus qu’à personnaliser l’affichage grâce à quelques styles CSS.