WordPress : catégorie d’accueil

Ce tout petit article pour décrire comment demander à WordPress d’afficher une catégorie d’articles en page d’accueil.

Évidemment, il ne faut pas faire afficher une page statique comme page d’accueil, mais des articles. Pour cela il faut aller dans Réglages -> Lecture et choisir « Les derniers articles ». Mais, dans ces conditions, ce sont les articles de toutes les catégories qui vont s’afficher.

Pour filtrer ceux-ci pour n’en afficher qu’une seule, il suffit d’ajouter au fichier functions.php du thème, tout à la fin :

function affiche_category($query) {
if ($query->is_home() && $query->is_main_query()) {
$query->set('category_name', 'accueil');}}
add_action('pre_get_posts', 'affiche_category');

Dans un premier temps, on y définit une fonction dont l’action sera de ne retourner que les articles de la catégorie accueil. Elle porte évidemment le nom affiche_category et reçoit une requête ($query), un article par exemple. En premier lieu, elle détermine si l’article est destiné à la page de blog de WordPress (is_home), c’est-à-dire la page principale des articles (celle-ci pourrait ne pas être la page d’accueil du site si une page statique avait été choisie pour celui-ci ; une autre fonction pourrait alors être utilisée is_front_page différence) et si la requête est principale (porte sur des articles ou page et non sur leur contenu). Si les deux conditions sont remplies, elle utilise la méthode set pour sélectionner les articles qui font partie de la catégorie dont le nom est accueil (catégorie définie préalablement par vous-même dans WordPress).

Enfin, cette fonction est déclarée comme une action à effectuer avant (pre_get_posts) la requête principale (is_main_query). Référence.

Voilà, notez que d’autres possibilités existent pour choisir une, ou plusieurs, catégories (RTFM).

Laisser un commentaire