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 comment 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 comme : 10 meilleurs plugins de témoignages WordPress et comment configurer le suivi des auteurs dans WordPress avec Google Analytics.
Salut,
Puis-je faire comme un nombre de vues fictif + le vrai nombre ?
Cela signifie que je peux définir manuellement la valeur de départ (car je veux que mon nouvel article publié affiche une valeur comme 3 429 vues dans la première minute) afin que mon article ait l'air d'avoir un nombre élevé de vues, bien sûr, combiné avec le vrai compte également.
Si oui, où définir le nombre de vues fictives en fonction du code ?
Quelle serait la clé méta pour l'appeler dans une requête ?
‘post_views_count’ est la clé méta.
Salut, est-il possible de faire en sorte que le nombre de vues ne s'affiche que s'il est supérieur à 1000 ?
Vous pourriez utiliser ce code lors de l'affichage du nombre de commentaires :
if (getPostViews(get_the_ID()) >= 1000) { echo getPostViews(get_the_ID()); }Y a-t-il un moyen d'exclure les vues d'administrateur du compte ?
Vous pourriez utiliser quelque chose comme ce code pour compter conditionnellement les vues : https://www.isitwp.com/check-if-user-is-logged-in/
Salut Debjit Saha, je ne trouve pas le dossier single.php dans mon modèle, où dois-je coller le code ?
La boucle principale pour les articles uniques peut se trouver dans un autre fichier de modèle. Vous voudrez peut-être vérifier un fichier post.php ou un fichier nommé de manière similaire.
Merci pour ce code. Il a parfaitement fonctionné.
Beau bout de code. Comment puis-je réinitialiser les compteurs et recommencer à compter ?
Si vous connaissez l'ID de l'article que vous souhaitez, cela devrait fonctionner.
UPDATE yourDatabaseName.wp_postmeta set meta_value = 0 where meta_key = ‘post_views_count’ and post_id = 1934
Bonjour, très bon votre article.
Ma question est comment faire remonter les données de Google Analytics pour afficher le nombre de vues des articles et des pages ?
Avez-vous un article ou un lien sur la façon de mettre cela en œuvre ?
Malheureusement, nous n'avons pas de recommandation actuelle pour cela exactement. Cela dit, vous pourriez vouloir consulter : https://www.monsterinsights.com/how-to-check-stats-for-individual-wordpress-posts-and-pages/
Un plugin Google Analytics qui peut extraire les données de vues et les afficher dans WordPress ?
Il y en a plein… Vous pouvez consulter notre liste complète des meilleurs plugins Google Analytics.
Les codes ne fonctionnent pas pour moi. J'ai un sujet bbpress, ce qui signifie que le type de publication est « topic ». Mais quand j'ai vérifié, meta_key est généré dans le backend. Mais les valeurs meta ne sont pas mises à jour à chaque visite
Super articles, ça fonctionne bien sur ma page
ma question est, est-ce que le décompte ne commencera qu'après l'implémentation de ce code ?
car toutes mes anciennes pages affichent 0 ou 1 vue alors qu'elles ont en réalité déjà des milliers de vues.
Oui, le comptage ne commence que lorsque le plugin est actif. Les vues antérieures à cela n'ont pas été enregistrées par ce plugin.
Merci beaucoup – ça fonctionne très bien !
J'ai 'amélioré' légèrement la fonction get_post_views afin qu'elle retourne le texte approprié en fonction du nombre de vues. Voici ma version :
function get_post_views($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 Views”; } if ($count==’1′) { return “1 View”; } return $count.’ Views’; }
Peut-être aimeriez-vous adopter cette version.
Merci de partager ! 🙂
merci.
Cela m'a beaucoup aidé, merci beaucoup !
Super ! Ça fonctionne à merveille… Je voulais juste le voir dans la zone d'administration et seuls les deux premiers codes font l'affaire !
Salut,
Merci pour le code, il fonctionne à merveille sans le cache activé…
Mais, comment puis-je le faire fonctionner avec wp rocket ?
S'il vous plaît…
Quelqu'un sait comment formater ou tronquer les nombres ? Donc, au lieu de 4445 vues, ce serait 4 445 ou 4,5K ?
Vous pourriez vouloir utiliser des fonctions PHP comme round() et number_format() pour ce cas d'utilisation.
Salut, d'une manière ou d'une autre mon code fonctionne bien mais il fait un incrément de +2 à chaque fois, les vues vont de 0, 2, 4, 6. Ce qui est ennuyeux, s'il vous plaît aidez-moi. J'ai placé le code ainsi que la partie show post views dans une fonction qui a une action après le contenu. Le compteur fonctionne, c'est juste qu'il est en multiples de 2.
Vous voudrez peut-être vérifier que cette fonction, setPostViews(get_the_ID()), n'est ajoutée qu'une seule fois. Quel hook utilisez-vous ?
est-ce que le fonctionnera dans le cache lightspeed ?
Code apparaissant sur la page d'accueil
Oops désolé, veuillez ignorer mon commentaire précédent. J'ai réalisé que j'appelais la fonction setPostViews plusieurs fois. C'est ma faute….
Après avoir corrigé cela, je ne vois le nombre de vues augmenter que de +2 chaque fois que je rafraîchis l'article de blog unique.
Quelqu'un a-t-il une solution pour cela ? Je n'imagine pas que ce sera un gros problème étant donné que la plupart des utilisateurs ne rafraîchiront pas réellement la page, bien que ce serait bien d'avoir un nombre de comptage réel à afficher…
Merci pour le code 🙂
Comment créer un nombre de vues aléatoire entre (600,900)
Aidez-moi s'il vous plaît..
comment puis-je arrêter l'augmentation automatique du compteur lors du rechargement de la page ?
Salut, vraiment de super conseils. Merci de les partager avec nous. J'utilise un plugin et Google Analytics pour suivre mes vues de page.
Salut,
Je veux afficher le compteur dans la classe meta, mon code meta est :
comment imprimer le compteur entre les meta comme auteur, date, catégories ?