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()get_categories() et get_taxonomies() . 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).

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.

Exemple de rendu après ajout de style CSS

Ressources récentes