X

Comment suivre les vues d'articles sans plugin en utilisant les métadonnées d'article

Extraits par IsItWP

Vous cherchez un moyen de suivre les vues d'articles sans plugin en utilisant les métadonnées d'article ? Bien qu'il existe probablement un plugin pour cela, nous avons créé un extrait de code rapide que vous pouvez utiliser pour suivre les vues d'articles sans plugin en utilisant les métadonnées d'article dans WordPress.

Instructions :

Ajoutez ce code au fichier functions.php de votre thème ou dans un plugin spécifique au site :

function getPostViews($postID){
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
        return "0 View";
    }
    return $count.' Views';
}
function setPostViews($postID) {
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        $count = 0;
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
    }else{
        $count++;
        update_post_meta($postID, $count_key, $count);
    }
}

// Remove issues with prefetching adding extra views
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0); 

Ajoutez éventuellement ce code à une colonne dans l'administration WordPress qui affiche les vues d'articles :

// Add to a column in WP-Admin
add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
function posts_column_views($defaults){
    $defaults['post_views'] = __('Views');
    return $defaults;
}
function posts_custom_column_views($column_name, $id){
	if($column_name === 'post_views'){
        echo getPostViews(get_the_ID());
    }
}

Cette partie du code de suivi des vues définira les vues d'articles. Placez simplement ce code ci-dessous dans le fichier single.php à l'intérieur de la boucle WordPress.

<?php
          setPostViews(get_the_ID());
?>

Remarque sur la mise en cache par fragments : Si vous utilisez un plugin de mise en cache comme W3 Total Cache, la méthode ci-dessus pour définir les vues ne fonctionnera pas car la fonction setPostViews() ne s'exécutera jamais. Cependant, W3 Total Cache dispose d'une fonctionnalité appelée mise en cache par fragments. Au lieu de ce qui précède, utilisez ce qui suit pour que setPostViews() s'exécute correctement et suive toutes vos vues d'articles, même lorsque la mise en cache est activée.

<!-- mfunc setPostViews(get_the_ID()); --><!-- /mfunc -->

Le code ci-dessous est facultatif. Utilisez ce code si vous souhaitez afficher le nombre de vues dans vos articles. Placez ce code dans la boucle.

<?php 
          echo getPostViews(get_the_ID());
?>

Remarque : Si c'est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez consulter notre guide sur la manière de copier / coller correctement des extraits de code dans WordPress, afin de ne pas casser accidentellement votre site.

Si vous avez aimé cet extrait de code, n'hésitez pas à consulter nos autres articles sur le site tels que : 10 meilleurs plugins de témoignages WordPress et comment configurer le suivi des auteurs dans WordPress avec Google Analytics.

Commentaires   Laisser une réponse

  1. Hàng xách tay April 6, 2013 at 2:45 am

    merci

  2. J'ai ajouté remove_action(), mais cela ajoute toujours 1 au compteur des articles récents lorsque j'ouvre l'un d'eux. Aidez-moi s'il vous plaît.

  3. Salut, merci mec ! Mais je n'obtiens pas l'image avec les vues comme vous le montrez ici. Pouvez-vous m'aider à obtenir l'image aussi.

  4. Tam Nguyen Photography February 1, 2013 at 11:13 pm

    J'ai constaté que cet extrait de code ne correspond pas à ce que je vois avec mes statistiques Jetpack. D'autres personnes rencontrent-elles le même problème ?

  5. il ne compte que les vues uniques, comment le changer pour qu'il compte chaque vue (chaque actualisation)

  6. Super conseils ! Merci beaucoup.

  7. Super conseils ! Merci de les partager. J'aurais cependant besoin d'un peu plus d'aide.
    Je voudrais afficher les articles les plus populaires de la dernière semaine ou du dernier mois ? Quelqu'un peut m'aider ? Merci

  8. Super extrait. Fonctionne à merveille.

    Savez-vous s'il est possible d'avoir maintenant une liste "Catégories les plus populaires", basée sur les catégories des articles les plus vus ?

  9. J'ai essayé ce code, il insère un compteur mais affiche le même compteur pour tous les articles, même si j'ai ajouté

    remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);
    Une idée ?

  10. Cela semble fonctionner mais je vois un problème dans mon cas particulier... J'utilise ce code dans un widget de barre latérale (ajout du nombre de lectures à une requête des derniers articles) :

    $args = array( ‘numberposts’ => 3, ‘order’=> ‘ASC’, ‘orderby’ => ‘title’ );
    $postslist = get_posts( $args );
    foreach ($postslist as $post) : setup_postdata($post);
    setPostViews(get_the_ID()); ?>

    Je vois deux choses :

    – Les trois articles listés montrent toujours un décompte incrémentiel les uns par rapport aux autres (article 1 = 0 vue, 2 = 1 vue, 3 = 2 vues). Je ne suis pas sûr que ce soit exact.
    – Lorsque je rafraîchis la page, ces trois articles voient leur décompte augmenté de 3 (0, 1 et 2 affichent maintenant 3, 4 et 5). J'ai bien ajouté le code remove_action à functions.php mais il semble qu'il n'ait eu aucun effet.

    Je ne suis pas sûr de la cause de cela....

  11. quand je crée un nouvel onglet dans firefox, il s'incrémente de 1, mais quand je rafraîchis la page, il s'incrémente de 2.
    Quelqu'un a le même problème ? pourquoi ça arrive ? à cause du navigateur ?

  12. Justin W Hall May 31, 2012 at 11:53 pm

    hmmmmmm, comment puis-je diminuer de un après, disons 24 heures ou incrémenter ?

    1. Laissez-moi juste voir si je comprends bien, vous voulez soustraire un de chaque vue toutes les 24 heures ?

      1. Yep, pour chaque coup, soustraire un coup 24 heures plus tard. Compris ? J'ai fini par utiliser un cron job. Si vous avez une solution plus simple. Je suis tout ouïe.

        1. un cron est à peu près la meilleure façon, une autre façon dépendrait des gens qui voient une page pour décrémenter et pourrait facilement prendre beaucoup de retard.

  13. WordPress Users: How to Increase Functionality AND Speed Up Your Site - ManageWP May 31, 2012 at 11:00 am

    […] Suivre les vues des articles en utilisant les métadonnées d'article […]

  14. merci mec pour ton travail.. c'est super

  15. excellent travail
    puis-je avoir le code 
    pour afficher les articles les plus consultés dans un widget ou une page 
     

  16. Kevin,
    Ce script peut-il être utilisé pour des types d'articles personnalisés ?

    1.  Salut Rafa, vous devriez pouvoir l'utiliser sans aucun problème.

    2.  Ok, je vais essayer.  Comment afficher les comptes de vues sur les colonnes d'articles admin CPT ?

      Merci !

      1. J'ai résolu mon problème, j'ai dû ajouter "post_type=any" à la requête et je vois maintenant tous mes types de publication personnalisés.

  17. Génial ! Merci pour le code, il semble fonctionner parfaitement.

  18. Bhaskar Relan March 9, 2012 at 6:27 pm

    Merci beaucoup cher... Un excellent travail....

    1.  Hier, j'ai dit que ça marchait... mais d'une manière ou d'une autre, quand on clique sur un article, il se calcule bien, mais quand on va au deuxième article le plus récent, puis qu'on va au plus récent, le compte pour le plus récent est incrémenté de 2. Un schéma similaire peut être observé avec trois.

      Dans le cas de trois articles, si nous allons au troisième article le plus récent, il sera incrémenté de 1, mais quand nous allons au deuxième article le plus récent, il est incrémenté de 2, puis quand nous allons au plus récent, il est également incrémenté de 2.

      Ce serait formidable si quelqu'un pouvait aider sur ce problème.

      1. moi aussi, chaque publication est incrémentée de 2. pourquoi ???

  19. ça marche sur chrome, firefox, mais sur safari, quand on rafraîchit la page, le nombre de vues augmente de 2, y a-t-il une solution, quelqu'un a-t-il testé sur safari

    1. trouvé le problème, une ligne de code jquery le fait compter deux fois lors du rafraîchissement, je ne sais pas pourquoi, mais je l'ai corrigé.

      1. Bonjour, j'ai le même problème. Pouvez-vous m'aider comment vous l'avez corrigé s'il vous plaît ? Chez moi, il compte deux fois dans tous les navigateurs

  20. Salut tout le monde !!

    Super conseils ! Merci beaucoup.

    Je me demandais si nous pouvions ajouter une donnée "heure" ?
    Parce que j'aimerais montrer la vue d'hier / d'il y a 2 jours / d'il y a 2 jours, etc. ?

    1. wp_get_archives vous permet de définir une courte période de temps, quelque chose comme ceci, je pense, serait utile.
       
      http://codex.wordpress.org/Function_Reference/wp_get_archives

      1. Ok je vois ce que vous voulez dire mais ce n'est pas exactement ce que je veux.
        Je voudrais faire une sorte de graphique.
        Pour faire une fonction qui montre si le post a des vues positives ou négatives. Je veux donc comparer les vues d'hier et d'aujourd'hui.

        1. Eh bien, c'est beaucoup plus complexe, je suggérerais quelque chose de plus simple, prenez un plugin comme celui-ci.

          http://wordpress.org/extend/plugins/official-statcounter-plugin-for-wordpress/

  21. Salut Kevin – Super boulot 😉 Petite question : ça marche bien pour moi mais le comptage commence à 0. Est-il possible de récupérer les vues que j'avais déjà sur les publications ? merci

    1.  Salut Hugo,
      Eh bien, le snippet s'enregistre dans les métadonnées du post, donc si vous aviez supprimé le snippet puis l'aviez ajouté à nouveau, il devrait continuer à partir des dernières valeurs. Cependant, vous pouvez toujours modifier les champs personnalisés pour changer les valeurs.

  22. Bonjour 
    Kevin Chard , je viens du Vietnam, mon anglais n'est pas bon 🙁
    Je veux vous poser une question 🙂 : comment afficher le nombre de vues d'un post uniquement pour l'administrateur (seul l'administrateur peut voir le nombre de vues du post) 😀
    Vous pouvez envoyer le code via mon email 😀

    1.  cet extrait affichera le nombre de vues des articles dans la colonne des articles dans l'administration. Cependant, si vous souhaitez l'afficher sur le site mais uniquement pour les administrateurs, vous pouvez simplement faire ceci.

      if(is_admin()){
            echo getPostViews(get_the_ID());
      }

      1. Kevin, comment puis-je le configurer pour qu'il ne compte que les visiteurs qui ne sont pas administrateurs ? Ce n'est pas un problème d'affichage, mais de comptage. Je suis sûr que !is_admin() y est pour quelque chose, mais je ne sais pas où ? Merci pour ces excellents extraits au passage.

        1. Cela devrait fonctionner pour vous, remplacez simplement le code de l'étape un par le suivant.
           
          if(!current_user_can(‘administrator’)){
                echo setPostViews(get_the_ID());
          }

  23. Comment pouvons-nous afficher le nombre de vues des articles uniquement sur la page d'administration où tous les articles sont affichés. Je veux dire la page edit.php

  24. comment supprimer le mot  « Vues » ?

    1. Christopher McMahon January 8, 2012 at 10:48 am

      Modifier la ligne 9

  25. Merci, je l'utilise sur un NOUVEAU site et cela fonctionne brillamment…

    J'apprends le PHP à la volée, donc votre code m'a appris quelques choses.. MERCI ENCORE…

    1. Cool Zaid, content d'apprendre que le site vous plaît et j'espère que vous apprécierez les extraits !

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre politique de confidentialité, et tous les liens sont nofollow. N'utilisez PAS de mots-clés dans le champ nom. Ayons une conversation personnelle et significative.

Liste de contrôle de lancement WordPress

La checklist ultime pour lancer un WordPress

Nous avons compilé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi l'eBook gratuit !