webleads-tracker

WordPress & Référencement naturel
Mes servicesWordPress - Référencement
Hébergement WordPress
Vous êtes ici : SeoMix » WordPress » Hacks, fonctions et snippets WordPress » Affichez un compteur Feedburner plus pertinent!

Affichez un compteur Feedburner plus pertinent!

Au lancement de SeoMix, j'avais donné une première solution pour récupérer le nombre de lecteurs de votre flux RSS Feedburner.

Mais la méthode avait deux défauts : pas de mise en cache des données, et des variations énormes entre chaque journée.

Désormais, vous pouvez affichez la moyenne de votre lecteurs RSS sur une période donnée, le tout mis en cache dans votre base de donnée.

Feedburner en feu

Feedburner manque de fiabilité sur le nombre de vos lecteurs

La solution à laquelle je suis arrivé est un mix de deux solutions, l'une venant de Jean-Baptiste Jung (Catswhoblog) et l'autre de Antti Kokkonen (Zemalf), auxquels j'ai aussi ajouté une fonction par shortcode pour affichez le nombre des lecteurs directement dans le contenu de vos articles

Afficher le nombre de lecteurs Feedburner

Cette fonction récupère la moyenne de vos lecteurs Feedburner sur une période de 7 jours, puis la place en cache dans la base de données de WordPress. La fonction vérifie que le cache est toujours valide avant de faire une requête pour récupérer une valeur plus récente.

Ajoutez le code suivant dans le fichier functions.php de votre thème WordPress :

// Nombre de followers Feedburner
add_option('myfeeds_count','0','','yes');
add_option('myfeeds_api_timer',mktime() - 10000,'','yes');
function feedburner_readers($feed_id,$interval = 7){
    if (get_option('myfeeds_api_timer') < (mktime() - 86400)) {
    $today = date('Y-m-d', strtotime("now"));
    $ago = date('Y-m-d', strtotime("-".$interval." days"));
    $feed_url="https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=".$feed_id."&dates=".$ago.",".$today;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $feed_url);
    $data = curl_exec($ch);
    curl_close($ch);
    $xml = new SimpleXMLElement($data);
    $fb = $xml->feed->entry['circulation'];
    $nb = 0;
    foreach ($xml->feed->children() as $circ){$nb += $circ['circulation'];}
    $mycount = round($nb/$interval);
    update_option('myfeeds_count', $mycount);}
  update_option('myfeeds_api_timer', mktime());
  if (!get_option('myfeeds_count')) return '0';
  else return get_option('myfeeds_count');}

Ajoutez ensuite le code suivant là où vous désirez faire apparaître le nombre de lecteurs Feedburner. Pensez à remplacer mon identifiant par le vôtre (fin de l'url de votre flux RSS chez Feedburner).

<?php if (function_exists('feedburner_readers')) {echo feedburner_readers('seomixfr');}?>

Personnaliser l'affichage des lecteurs RSS

Modifier le texte

Pour ajouter du texte avant et après, vous devez simplement le coder en dur directement dans votre thème WordPress (sans doute la meilleure solution en termes de performances). Exemple :

<?php if (function_exists('feedburner_readers')) {echo feedburner_readers('seomixfr');}?> abonn&eacute;s RSS

Qui donnera par exemple "99 999 abonnés RSS".

Période utilisée pour le nombre de lecteurs

Pour modifier la période à utiliser lors du calcul de la moyenne de vos lecteurs Feedburner, utilisez le code suivant (en remplaçant le chiffre 30 par le nombre de jours désirés).

<?php if (function_exists('feedburner_readers')) {echo feedburner_readers('seomixfr',30);}?> abonn&eacute;s RSS

Mise en cache du nombre de lecteurs Feedburner

On peut aussi modifier la durée de la mise en cache. Dans ce cas, remplacer le chiffre 86400 (5ème ligne) par le nombre de secondes où la donnée doit rester dans la base de données WordPress. Cependant, je vous déconseille de la changer. La valeur est actualisée une fois par jour sur Feedburner, donc je ne vois pas trop l'utilité de lui demander de la vérifier plus fréquemment sur votre blog...

if (get_option('myfeeds_api_timer') < (mktime() - 86400)) {

Dans le contenu des articles

Si vous souhaitez en plus afficher le nombre de vos lecteurs Feedburner directement dans le contenu d'un article, utilisez le code suivant à la place du précédent pour votre fichier functions.php.

// Nombre de followers Feedburner
add_option('myfeeds_count','0','','yes');
add_option('myfeeds_api_timer',mktime() - 10000,'','yes');
add_shortcode("feed-readers", "feedburner_readers");
function feedburner_readers(){
  if (get_option('myfeeds_api_timer') < (mktime() - 86400)) {
    //Remplacer avec votre identifiant Feedburner et la durée en jours
    $feed_id ="seomixfr";
    $interval = 7;
    $today = date('Y-m-d', strtotime("now"));
    $ago = date('Y-m-d', strtotime("-".$interval." days"));
    $feed_url="https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=".$feed_id."&dates=".$ago.",".$today;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $feed_url);
    $data = curl_exec($ch);
    curl_close($ch);
    $xml = new SimpleXMLElement($data);
    $fb = $xml->feed->entry['circulation'];
    $nb = 0;
    foreach ($xml->feed->children() as $circ){$nb += $circ['circulation'];}
    $mycount = round($nb/$interval);
    update_option('myfeeds_count', $mycount);}
  update_option('myfeeds_api_timer', mktime());
  if (!get_option('myfeeds_count')) return '0';
  else return get_option('myfeeds_count');}

Cette fois-ci, pensez à remplacer votre identifiant Feedburner et la période à utiliser dans ce code (lignes 7 et 8).

Ajoutez ensuite le code suivant quand vous éditez votre article, et le tour est joué :

[feed-readers]

L'avantage du dernier code est de pouvoir afficher à la fois vos lecteurs Feedburner dans votre thème et dans le contenu de vos articles. Pour continuer à afficher ce nombre dans votre thème WordPress, utilisez ce code (pas de nom ou de période à insérer) :

<?php if (function_exists('feedburner_readers')) {echo feedburner_readers();}?>

Remarques, insultes, bugs ou remerciements, pensez à commenter cet article.

Sources :

Les thèmes relatifs

Voici les thématiques abordées par Affichez un compteur Feedburner plus pertinent!:

14 commentaires
  1. Joe
    3 messages

    Joe - Le 09 juillet 2010, 11:03

    Merci pour le code. Clair et bien expliqué comme d’habitude ;)

  2. Fajr Breeze - Yuxx
    1 message

    Fajr Breeze - Yuxx - Le 10 juillet 2010, 19:14

    Merci pour le partage, je me lance dès maintenant. Sinon, n’y a t-il pas des plugins pour faire ce travail ?

  3. Kemenn
    5 messages

    Kemenn - Le 12 juillet 2010, 13:31

    Je rencontre de grandes différences entre le nb d’abonnés chaque jour. Je vais tester ce code pour espérer plus de stabilité. Merci

  4. Daniel Roch
    725 messages

    Daniel Roch - Le 15 juillet 2010, 09:22

    @Antiti Kokkonen : your code is very useful, and i used it to improve my own feedburner count for WordPress.

  5. Nicolas Pène
    1 message

    Nicolas Pène - Le 28 juillet 2010, 10:03

    Il est vrai que Feedburner n’est plus aussi pertinent qu’avant, en affichant depuis quelques mois qu’un compteur journalier.

    Merci pour ce code, je ne manquerais pas de le tester dès que possible.

  6. Lashon
    6 messages

    Lashon - Le 29 août 2010, 15:50

    Très bonne idée cette modif de code, effectivement les chiffres affichés sont un peu nébuleux. Vais appliquer ça. Une question si tu veux bien : pour ma part j’ai paramétré mon compte feedburner directement en sous-domaine.

    Alors ton code peut-il être: si la function existe… gnagnagna wordpresslangage
    Même question pour le code du functions : ajustements ?
    Merci

  7. Daniel Roch
    725 messages

    Daniel Roch - Le 30 août 2010, 09:06

    @Lashon : je ne suis pas sûr de comprendre ce que tu veux faire. Tu veux pouvoir traduire le rendu du code ?

  8. Guillaume
    4 messages

    Guillaume - Le 03 octobre 2010, 11:30

    Bonjour,

    J’ai essayer votre fonction pour récupérer une moyenne de mes abonnés RSS mais le compteur est toujours à 0.

    Y-a-t-il quelques chose d’autre à modifier.

    Merci pour votre réponse.

    Guillaume.

  9. Daniel Roch
    725 messages

    Daniel Roch - Le 03 octobre 2010, 21:39

    @Guillaume : essaie de changer le timing du cache pour voir si cela se met à jour. Vérifie aussi l’identifiant $feed_id et le nombre de jours à utiliser (juste en dessous)

  10. Guillaume
    4 messages

    Guillaume - Le 04 octobre 2010, 20:41

    Je vais essayer avec les valeurs par défaut et attendre 24 heures. Je vous tiens au courant. Merci

    EDIT : Bonjour. Après une journée de test mon compteur est toujours à 0. Je ne sais pas quoi faire?

  11. Daniel Roch
    725 messages

    Daniel Roch - Le 06 octobre 2010, 09:33

    Remplace $feed_id par l’identifiant de ton site sur feedburner. Remplace $interval par 1. Remplace au dessus le timer (au lieu de 86400, utilise la valeur 1)

    Dis-moi si tu vois ou si tu ne vois pas le nombre d’abonnés Feedburner.

  12. Guillaume
    4 messages

    Guillaume - Le 06 octobre 2010, 18:23

    Bonsoir et merci pour ton aide.

    Dans le fichier functions voici ce que j’ai modifié :

    add_option(‘myfeeds_count’,’0′, »,’yes’);
    add_option(‘myfeeds_api_timer’,mktime() – 10000, »,’yes’);
    function feedburner_readers($feed_id,$interval=7){
    if (get_option(‘myfeeds_api_timer’) < (mktime() – 1))

    J’ai remplacé le 86400 par 1.

    EDIT : Suite du test, j’ai comme valeur 458, ce qui représente mes abonnés RSS aujourd’hui.

    EDIT 2 : Suite et fin du test. J’ai l’impression que c’est la valeur 86400 qui coince avec tout fonctionne bien, cela a t-il une incidence sur le fonctionnement de ton script ?

    Merci pour ton aide.

  13. Daniel Roch
    725 messages

    Daniel Roch - Le 07 octobre 2010, 09:33

    La ligne function ne doit pas être modifiée.
    Les valeurs $ se modifie un peu plus bas, juste après le « //Remplacer avec votre identifiant Feedburner et la durée en jours ».

    86400 est le nombre de secondes de mise en cache. Utilisez la valeur 1 revient donc à désactiver le cache.

    $interval est le nombre de jours sur lequel le calcul doit se faire. C’est donc là que le problème est.

  14. Djib's
    27 messages

    Djib's - Le 22 novembre 2010, 16:14

    Bonjour,

    J’ai le même soucis que Guillaume. c’est le 86400 qui pose problème, dès que je met cette valeur à 1, le nombre s’affiche mais si je remet à 86400 après, le lendemain le chiffre ne s’actualise pas

» Commentez cet article !
(Merci de donner un vrai prénom)
(Ne sera jamais publié)
(Modèration subjective)
Html accepté <a> <i> <b> [codesyntax]CODE[/codesyntax]
» Prévisualisez votre message

3 sites en parlent :
Par tapemoi.com le 09/07/2010» Affichez un compteur Feedburner plus pertinent!Feedburner sur Wordpress...Feedburner affiche un nombre de lecteurs avec des variations énormes entre 2 journées. Ce code permet d'avoir un chiffre beaucoup plus réaliste, et le tout mis en cache dans votre base de donnée (pour Wordpress)...
Par www.blogmemes.be le 09/07/2010» Affichez un compteur Feedburner plus pertinent!Afficher vos lecteurs feedburner sur Wordpress...- Vous aimez cet article ? Votez pour lui sur Blogmemes.be !Feedburner affiche un nombre de lecteurs avec des variations énormes entre 2 journées. Ce code permet d\'avoir un chiffre beaucoup plus réaliste, et le tout mis en cache dans votre base de d...
Par www.fuzz.fr le 09/07/2010» Affichez un compteur Feedburner plus pertinent!Feedburner pour Wordpress...Feedburner affiche un nombre de lecteurs avec des variations énormes entre 2 journées. Ce code permet d'avoir un chiffre beaucoup plus réaliste, et le tout mis en cache dans votre base de donnée (pour Wordpress)...

© 2010-2012 SeoMix : WordPress & Référencement
Propulsé par WordPress et Daniel Roch. Logo créé par Willy-Bahuaud

Indispensable
WordPress
A propos de SeoMix
Mes servicesWordPress - Référencement
Suivez-nous !
  • 8812 abonnés
  • 197 articles
  • 4605 messages
Vous devriez lire
Seo et emarketing
Les amis
64388eb5d994f4f371508536f918ec89rr