Créer une page des articles les plus populaires avec WordPress

Mis à jour le :

Créer un modèle de page reprenant vos meilleurs articles n’a rien de compliqué. La seule contrainte est d’établir une méthode calcul de la popularité de vos billets afin d’établir un classement.

Utiliser le plugin WP-PostViews de Lester Chan

La méthode la plus simple consiste à compatibiliser le nombre de fois qu’un article a été vu. Le plugin WP-PostViews le fait très bien en limitant notamment à l’IP des visiteurs – pour éviter les doubles comptes.

Le problème : ce plugin ne peut pas agir de manière rétroactive, autrement dit récupérer le nombre de vues avant son installation. Il est donc important de l’installer dès l’origine pour obtenir un compte fiable.

Vous pouvez le télécharger à cette adresse, accompagné de sa traduction française :

  • WP-PostViews
    Plugin WordPress permettant d’afficher un compte de vues sur un article ou une page. Failles de sécurité détectées par BoiteAWeb, en attente de correction. »
    Taille du fichier :
    16.60 KB
  • WP-PostViews 1.50, fichiers de traduction française
    Traduction française du plugin WP-PostViews.
    Taille du fichier :
    17.09 KB

Il nous faut ensuite créer un modèle de page contenant la fonction suivante dans la <div> du corps de texte :

<?php if (function_exists('get_most_viewed')): ?>
<ul>
<?php get_most_viewed(post,'50'); ?>
</ul>
<?php endif; ?>

50 indique le nombre d’articles à afficher sur votre page. Indiquez la valeur de votre choix pour créer le top 10, 25, 50, etc. de vos articles.

Un exemple complet de ce modèle de page est téléchargeable à partir de ce lien, libre à vous de l’adapter pour vos besoins :

  • Modèle de page « Les plus populaires » » »
    Un template WordPress des articles les plus lues sur votre blog.
    Taille du fichier :
    1.14 KB

Utiliser le nombre de commentaires de vos articles

Un autre moyen pour calculer la popularité de vos billets consiste à comptabiliser le nombre de commentaires. Cette valeur est facile à obtenir puisque WordPress stocke les commentaires dans la base de données.

Toutefois, certains articles n’ouvrent pas nécessairement sur un débat et il fréquent d’obtenir un nombre élevé de visiteurs avec aucun commentaire. Ce type de calcul est donc peu fiable à mon sens – mais c’est la seule alternative que tout site WordPress peut adopter.

<h2>Articles les plus commentés</h2>
<ul>
<?php
$result = $wpdb->get_results("SELECT comment_count,ID,post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '2011-01-01' AND '2011-12-31' ORDER BY comment_count DESC LIMIT 0 , 10");

foreach ($result as $topten) {
$postid = $topten->ID;
$title = $topten->post_title;
$commentcount = $topten->comment_count;
if ($commentcount != 0) {
?>
<li><a href="<?php echo get_permalink($postid); ?>"><?php echo $title ?></a></li>
<?php }
}
?>
</ul>

Ce hack effectue une requête MySQL pour obtenir les articles les plus commentés en 2011. Libre à vous de supprimer / modifier WHERE post_date BETWEEN '2011-01-01' AND '2011-12-31'  pour ne pas prendre en compte la date ou changer la période.

Comme pour la première méthode, il convient de l’insérer dans un modèle de page. Reprenez donc le fichier PHP précédemment proposé en téléchargement puis insérez ces lignes en lieu et place de la première fonction.

Ces 2 techniques vous auront appris à créer un modèle de page WordPress capable d’afficher un nombre prédéfini d’articles figurant parmi les plus populaires sur votre site en se basant sur 2 méthodes de calcules différentes. Et vous, chers lecteurs, disposez-vous d’une méthode alternative ?

Avatar de Aurélien Denis

Protégez votre site WordPress

Vos données sont précieuses,
ne prenez pas le risque de tout perdre.
Confiez-moi votre maintenance !

Ces articles devraient t’intéresser…

11 réponses
  1. Avatar de etienne
    etienne

    Bonjour, j’ai voulu mettre le code dans ma sidebar pour afficher les articles les plus car j’ai wp post views. Ça marche mais ça ralentit énormément mon site et crée des erreurs parfois (connexion à la base de données). Auriez-vous une autre solution ?

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Sans doute une limitation de l’hébergeur. A voir en augmentant la limite mémoire ou appliquant un cache via l’excellent plugin premium WP-Rocket.

  2. Avatar de stefan
    stefan

    impec cet article merci

  3. Avatar de puto
    puto

    Slt je viens de telecharger WP-PostViews 1.50, fichiers de traduction française, ma question est de savoir où est ce que je veux faire l’extraction pour enfin créer ma page.

    merci

  4. Avatar de Lisa
    Lisa

    Salut Aurélie,

    Et si on veut afficher les articles les plus populaires selon le nombre de vues ? Comment fait-on ?

    Merci 🙂

  5. Avatar de Nerva
    Nerva

    Débutant dans WP, la fonction des articles les plus commentés m’intéresse. La page est ok mais ce que je voudrais c’est afficher directement la liste des X articles les plus commentés dans la sidebar mais je ne sais pas comment intégrer un template personnalisé dans la sidebar.

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Il te faut récupérer le code proposé en l’insérant dans le fichier sidebar.php ou à l’emplacement souhaité dans ton thème.

      Le thème se trouve dans le dossier /wp-content/themes/NOM_DU_THEME. Tu peux éditer les fichiers via le client FTP (mieux pour revenir en arrière facilement) ou par le menu Apparence puis Éditeur.

  6. Avatar de Amauy
    Amauy

    C’est un peu abusé de faire une requête SQL alors que WordPress propose une API de récupération des articles query_posts/WP_Query avec un paramètre de tri sur le compteur de commentaires.

    http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

    Faire les requêtes SQL, c’est peut être plus performant à un moment T, mais la compatibilité, la sécurité n’est pas garantie…

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Tu as raison… je suis passé à côté alors même que j’utilise régulièrement cette méthode pour arriver mes fins. Merci ! 😉

    2. Avatar de Boris Delormas
      Boris Delormas

      Je me faisais exactement la même réflexion en lisant l’article.

  7. Avatar de Julien
    Julien

    Merci pour cette astuce Aurélien. Je voulais justement faire une page Best-of 🙂