Corriger le bug «0 abonnés» du compteur Feedburner

Contexte et problème observé
Sur la plupart des blogs on trouve des compteurs Feedburner affichés comme «767 Subscribers and Counting!!» ou équivalent. Certains utilisent la méthode décrite par ThemeTation pour convertir le compteur Feedburner en texte sans plugin. Cette approche interroge l’API Feedburner et affiche le champ circulation en texte.
Cependant, il arrive que ce compteur converti renvoie “0” pendant une courte période chaque jour. Le comportement est le même pour les chicklets officiels de Feedburner : la valeur est parfois remise à 0 avant d’être mise à jour. Si votre site est servi par un plugin de cache ou un CDN, vous risquez de mettre en cache la page avec la valeur 0 et d’afficher 0 abonnés aux visiteurs.
Exemple : un article peut afficher «0 Subscribers» alors que le compte réel dépasse largement les milliers — situation embarrassante pour un lecteur.
Pourquoi ça arrive
- Feedburner met parfois temporairement la valeur à 0 lors de la rotation ou de la mise à jour de son service.
- Les requêtes vers l’API peuvent renvoyer une valeur non initialisée ou vide avant d’envoyer la valeur définitive.
- Les systèmes de cache (plugin WordPress, CDN) peuvent conserver une réponse «0» et la servir pendant des heures.
Important : ce n’est pas un bug de votre code PHP en soi, c’est un effet de la manière dont Feedburner publie ses métriques et du comportement des caches.
Correction simple — mise en place du fallback (méthode rapide)
Si vous avez suivi ThemeTation ou une méthode équivalente, ouvrez le fichier où vous affichez le compteur (header.php, sidebar.php ou tout autre template). Recherchez la ligne :
$fb = $xml->feed->entry['circulation'];
Juste après, ajoutez une variable contenant un nombre de remplacement réaliste :
$fc = "XXX"; // Remplacez XXX par une valeur réaliste ou par votre dernière valeur connue
Ensuite, remplacez l’affichage direct echo $fb
par la logique suivante :
if ($fb == "0")
echo $fc;
else
echo $fb;
Veillez à conserver le code dans les balises PHP. Exemple complet (intégration minimale) :
feed->entry['circulation'];
$fc = "123"; // fallback réaliste
if ($fb == "0")
echo $fc;
else
echo $fb;
?>
Notes :
- Remplacez “123” par une estimation proche de votre nombre réel d’abonnés ou par la dernière valeur enregistrée.
- Cette méthode est non intrusive et fonctionne avec n’importe quel thème.
Approches alternatives et recommandations
Stocker la dernière valeur valide en base
- Lorsqu’une valeur non nulle est récupérée, enregistrez-la dans l’option WordPress (update_option) ou dans un fichier local.
- En cas de 0, lisez la dernière valeur enregistrée et affichez-la.
- Avantage : dynamique et plus précis qu’un nombre statique.
Utiliser un court TTL de cache pour la requête Feedburner
- Rafraîchissez la valeur toutes les X minutes côté serveur (transient API de WP, cache mémoire) pour réduire le nombre d’appels et éviter la mise en cache longue d’une valeur 0.
Requête côté client avec fallback
- Faire une requête AJAX/Fetch vers un endpoint serveur qui renvoie le nombre. Le JS insère la valeur sans recharger la page.
- Si la réponse est 0, afficher la valeur locale (dernière connue) côté navigateur.
Masquer complètement le compteur
- Si l’instantané exact n’est pas critique, on peut remplacer le nombre par une formulation générique («Rejoignez nos abonnés»).
Exemples — snippet : sauvegarde de la dernière valeur dans les options WP
Exemple pour WordPress (très simple, à adapter) :
// Récupération
$fb = $xml->feed->entry['circulation'];
if ($fb != "0") {
update_option('feedburner_last_count', $fb);
echo $fb;
} else {
$last = get_option('feedburner_last_count', '123');
echo $last;
}
Avantage : vous n’affichez jamais «0» et la valeur reste réaliste sans intervention manuelle.
Liste de contrôle (rôles et tâches)
Pour le développeur :
- Ajouter le fallback statique ou la logique d’enregistrement (update_option).
- Tester l’intégration dans header.php / sidebar.php.
- Définir un TTL de cache raisonnable si vous utilisez des transients.
Pour l’éditeur :
- Vérifier que le nombre affiché est cohérent avec vos statistiques.
- Remplacer le fallback statique par la valeur la plus récente si nécessaire.
Pour l’administrateur système :
- Vérifier que le CDN ou plugin de cache ne sert pas de pages mises en cache trop longtemps.
- Purger le cache si vous observez des zéros persistants.
Runbook de dépannage rapide
- Confirmer que la source feedburner renvoie 0 : testez l’URL du flux manuellement.
- Si la réponse du flux est non nulle, vider le cache (WP, CDN) et retester.
- Si le flux renvoie 0 périodiquement, implémentez le fallback statique ou la sauvegarde de la dernière valeur.
- Surveiller pendant 48 heures pour s’assurer que le problème ne se reproduit pas.
Quand cette astuce échoue (contrexemples)
- Si Feedburner renvoie constamment 0 (problème côté service), il faut enquêter sur l’API Feedburner plutôt que sur l’affichage.
- Si vous avez besoin d’un compteur en temps réel exact (pour des rapports), un fallback statique est insuffisant : privilégiez la sauvegarde périodique côté serveur.
Bonnes pratiques et sécurité
- Ne basez pas de décisions commerciales sur le chiffre affiché si vous utilisez un fallback statique.
- Limitez le nombre d’appels à l’API Feedburner et utilisez des transients ou une mise en cache courte pour éviter d’être pénalisé.
- Évitez d’exposer des endpoints non sécurisés si vous implémentez une API interne pour récupérer la valeur.
Important : le but est d’éviter l’affichage d’un nombre manifestement faux (0) tout en restant transparent et en ne prétendant pas avoir une précision absolue.
Résumé
- Feedburner peut renvoyer temporairement “0” et provoquer l’affichage de 0 abonnés.
- Solution la plus simple : ajouter un fallback statique dans votre code PHP.
- Solution recommandée : enregistrer la dernière valeur valide (option WP ou fichier) et l’utiliser comme secours.
- Vérifiez la configuration du cache pour éviter de mettre en cache une page avec 0 abonnés.
Merci d’avoir lu — avez-vous une solution plus élégante ? Partagez-la et nous l’ajouterons.
Matériaux similaires

Supprimer les gros fichiers sur Mac

Supprimer messages et conversations dans Microsoft Teams

Installer Photosynth sur Windows 10

AirDrop iPhone ↔ Mac : guide complet

Regarder TF1 depuis les États-Unis — 4 méthodes fiables
