Aujourd’hui on va voir comment simplement et rapidement créer dans son site une page des articles les plus consultés.
Créer la page a-la-une.php
Je crée d’abord une template de page que j’appelle ici a-la-une.php
Dans l’en tete du fichier je définis le nom de mon template
Dans le backoffice de wordpress, je crée également une page ‘A la une’ en lui affectant mon nouveau modèle de page:
Le compteur de vues
Ensuite dans le fichier functions.php, on va insérer trois fonctions, tirées du site wpbeginner.com
- Une première fonction pour compter le nombre de vue et stocker l’information dans un nouveau champ additionnel.
- Une deuxième fonction pour rajouter le traqueur dans le header plutot que dans tous les pages à comptabiliser (single.php etc)
- Une troisième fonction pour afficher le nombre de vues.
La nouvelle boucle
Le principe de notre page A la une est qu’elle va agir comme une page catégorie: elle est censée afficher une liste d’articles.
On crée donc notre boucle en prenant en compte, dans les arguments de notre fonction, notre nouveau champ additionnel qui contient le nombre de vues :
On a ici un get_template_part, comme dans la plupart des thèmes par défaut wordpress, qui va chercher content.php et renvoyer le contenu approprié en fonction du format d’article.Généralement cette page est une succession de « if » pour dire si c’est un article affiche moi le contenu, sinon affiche moi juste l’extrait etc..etc.Si le thème n’est pas codé en ce sens, il suffit alors de placer tout le code dans cette page plutot que dans la page content.php
Notre page A la une agit donc bien comme une catégorie : après avoir pris en compte le compteur de vues, la page va intégrer les articles classiques dans cette nouvelle boucle.Il n’y a pas besoin de créer une page spécifique « single-a-la-une.php » puisqu’il ne s’agit pas d’un custom post type, et qu’on reprend les articles classiques du blog.
Ensuite, pour que wordpress reconnaisse cette page comme une page « catégorie », c’est à dire censée renvoyer l’extrait d’abord, puis l’article ensuite, Il faut la rajouter dans les conditions d’affichage de content.php, par exemple:
Ainsi wordpress comprend que si c’est une page « a la une » il va renvoyer les extraits plutot que le contenu entier.Comme on reprend les mêmes éléments conteneurs et les mêmes classes, notre page a la meme apparence que notre page catégorie ou archive
Si dans cette page on veut afficher le nombre de vue, à coté de la date par exemple, il suffit de placer la fonction
quelque part dans votre code.
Le css
Dans le css, il y aura certainement des modifications à faire : le plus simple est de reprendre tout le code concernant vos page archive ou category, et de remplacer le selecteur spécifique par un « .page-template-a-la-une-php », la nouvelle classe créee par wordpress et ciblant votre page
Par exemple un
devient un