• Blog
  • Portfolio
  • A propos de moi
  • Créations Websites
  • Blog
  • Portfolio
  • A propos de moi
  • Créations Websites
Mot clef :

script

Parcourir:
  • Accueil
  • script

Compteur de vues sur post (articles et pages) pour thème et plugin WordPress (script PHP) avec cookie session

Par WolwX dans la catégorie Développement, Informatique, Webmastering, Wordpress
Mots clef : compteur, php, script, view, views, vue, vues, wordpress

Voilà donc un petit mémo pour une solution basique : Ajouter un compteur de vue sur mes pages ou articles WordPress

En effet, dans le cadre du développement de theme perso WordPress, je suis arrivé à ce besoin de pouvoir afficher le nombre de “views” faites sur un article.

J’ai alors trouvé assez facilement des articles redirigeant en coeur sur un script permettant de faire ceci.
Tous les articles ou sites que je trouvais renvoyés sur ce script et ces variantes :

  • https://gretathemes.com/count-post-views/
  • https://www.themexpert.com/blog/track-display-post-views-in-wordpress
  • https://goodlywp.com/how-to-display-post-views-on-your-wordpress-posts/

J’ai donc longtemps essayé d’utiliser la base de ce script, mais avec à la clef, un gros bug dans le comptage des vues, une incrémentation par 2 au lieu de 1 à chaque rafraîchissement de la page …

Je me suis alors rendu compte que j’étais loin d’être un cas isolé dans ce bug, et qu’une piste montrée du doigt le moteur de Chrome qui pouvait boucler des requêtes envoyant une fausse impression de double visite sur la page.
Dans certains cas, on invitait à voir du coté de la favicon mal réglée (absence de l’url renseignée par exemple) en head, ou encore des scripts, ou même autres tags avec cible manquantes ou foireuses.

Dans mon cas rien à faire, malgré toutes ces vérifications le problème persistait, et pour m’assurer que cela venait de Chrome, rien de complexe, tester avec Internet Explorer et bingo …

Du coup j’ai cherché plusieurs manière de corriger le script, ou l’améliorer, jusqu’à me tourner vers l’utilisation d’un Cookie de session tout simplement.

J’ai donc incorporé l’utilisation de ce Cookie, qui permet de limiter le comptage en fonction de la présence de ce celui ci.

Si le cookie existe, alors pas de comptage, dans le cas contraire, comptage et donc forcément, même si le script PHP est bouclé en double par le moteur de Chrome, vue la création du Cookie à la première boucle, la seconde incrémentation ne ce fait pas !
Tests ok, résultat probant, parfait pour mon besoin 🙂

Voici le script, rajouté dans mon functions.php, avec commentaires aidant à compréhension :

/* Function compteur de vue -- DEBUT */
// Récupérer le nombre de vue du post
function getPostViews($postID){
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
// Si le post n'à aucune vue existante dans la table post_meta alors la créer avec la valeur de 0 vue
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0";
}
return $count;
}

// Régler le nombre de vue du post
function setPostViews($postID) {
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
// Vérification de l'existence d'un cookie ayant pour information l'ID du post, si il existe, ne rien faire, dans le cas contraire créer le cookie et rajouter 1 vue
if(isset($_COOKIE['postviews']) && $_COOKIE['postviews'] == $postID) {
} else {
// Création du cookie, en expiration à 60 secondes
setcookie('postviews', $postID, time()+60);
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);

// Add to a column in WP-Admin
// Rajout des colonnes de vue sur la page admin des articles
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());
}
}

/* Function compteur de vue -- FIN */

Bien entendu, il convient ensuite de rajouter la fonction sur la page article ou post permettant de lancer le script, par exemple sur le fichier single.php (je n’ai rajouté que la ligne seetPostViews) =>

<?php
while ( have_posts() ) :
// update du nombre de vue
setPostViews(get_the_ID());
the_post();

Puis de renseigner le code dans la partie template prévue pour afficher les views, par exemple sur la page \template-parts\content.php =>

<i class="fas fa-eye"></i><?php echo getPostViews(get_the_ID()); if (getPostViews(get_the_ID()) > '1') { ?> <?php esc_html_e( 'vues', 'nomdevotretheme' ); } else { ?> <?php esc_html_e( 'vue', 'nomdevotretheme' ); };?>

Voilà, je n’ai rien fait d’exceptionnel, mais le fonctionnement final est exactement comme je le souhaitai, et ce petit article me servira de mémo au cas ou, alors si il profite à d’autres, tant mieux 😉

SSH : Script de backup RSYNC automatisé en CRON

Par WolwX dans la catégorie Administration Système, Informatique
Mots clef : backup, backups, bash, cron, debian, linux, log, mail, programmation, rsync, sauvegarde, sauvegardes, scp, script, serveur, serveur dédié, serveur local, sh, ssh, ubuntu

Voilà donc, j’ai voulu dépoussiéré un petit script utile que je me suis fait il y à quelques années et qui à pour but de faire un backup entre 2 serveurs dédiés sous Linux. Du coup je l’ai un peu modifié pour l’utilisation de différentes variables. Mehr lesen»

Connexion SSH sans mot de passe

Par WolwX dans la catégorie Administration Système
Mots clef : astuce, automatisé, backup, clef, connexion, keygen, login, mémo, mot de passe, rsa, rsync, script, ssh

Mehr lesen»

Sécuriser son serveur dédié : Alerte email lors d’une connexion ssh réussie

Par WolwX dans la catégorie Administration Système, Informatique, Sécurité
Mots clef : /var/log/auth.log, administration, administration système, automatisation, bash, cron, dédié, email, first-heberg, hacking, log, notification, ovh, root, script, sécurité, sécurité informatique, serveur, serveur dédié, ssh, système

Mehr lesen»

Les Cram, ou emails automatiques sur cron

Par WolwX dans la catégorie Administration Système, Informatique
Mots clef : automatique, cram, cron, cronic, exim, linux, mail, message, output, script, sh, spam, unix

Mehr lesen»

Envoyer un mail depuis ligne de commande et sans serveur mail

Par WolwX dans la catégorie Administration Système, Informatique
Mots clef : bash, debian, exim, mail, mta, script, scripting, unix

Mehr lesen»

Rechercher

Mots Clés

6 pouces administration système android Android 4.4.4 APK application astuce bash Blizzard bug counter strike source css debian DPI dédié facebook fps gamer geek Huawei Ascend Mate 7 jeux vidéo linux mail maj mumble mutualisé mx obb ovh script server serveur serveur dédié serveur mail smartphone spam ssh sécurité tablette téléchargement virus WolwX.net wordpress zcs zimbra

Derniers commentaires

  • Zimbra ZCS – Installer un certificat SSL gratuit Letsencrypt sur la webmail | WolwX.net dans Zimbra ZCS – personnalisation de la webmail
  • WolwX dans Hack Playstation 4 on peut vraiment jouer à des jeux “crackés” ?
  • Ridha dans Hack Playstation 4 on peut vraiment jouer à des jeux “crackés” ?
  • WolwX dans Hack Playstation 4 on peut vraiment jouer à des jeux “crackés” ?
  • ALcapone dans Hack Playstation 4 on peut vraiment jouer à des jeux “crackés” ?
  • Messoum dans Hack Playstation 4 on peut vraiment jouer à des jeux “crackés” ?
  • Antoine dans Hack Playstation 4 on peut vraiment jouer à des jeux “crackés” ?
  • Nestor dans Hack Playstation 4 on peut vraiment jouer à des jeux “crackés” ?
  • Ronin dans Hack Playstation 4 on peut vraiment jouer à des jeux “crackés” ?
  • WolwX dans Hack Playstation 4 on peut vraiment jouer à des jeux “crackés” ?
Linkedin Facebook Instagram
Twitter Youtube
Contact Mail
Plan du site (Sitemap) :
  • Blog Articles
  • Cookies
  • Portfolio Portfolio
  • Créations Websites Créations Websites
  • Mentions légales
  • A propos de moi A propos de moi
  • Me contacter
  • Politique de confidentialité

WolwX :: © 2009 - 2023 Tous droits réservés. +
Propulsé par Wordpress :: Designed (OneTouch v2 custom) :: Hosted, Configured & Powered by n1-Web.fr
Optimisé en HD pour une résolution égale ou supérieur à 1280x1024 pixels
Compatible Smartphones et Tablets, Responsive Webresponsive 10 paliers.
Navigateurs recommandés Google Chrome Firefox

Avertissement : Toute reproduction, représentation, traduction, adaptation, ou citation qu'elle soit intégrale ou partielle, quelqu'en soit le procédé, est strictement interdite sans autorisation, sauf cas prévus par l'article L.112-5 du code de la propriété intellectuelle.
Les marques citées sont la propriété de leurs détenteurs respectif.