Guia de tecnologias

Corrigir bug de 0 assinantes do Feedburner

5 min read WordPress Atualizado 07 Oct 2025
Corrigir 0 assinantes no Feedburner
Corrigir 0 assinantes no Feedburner

TL;DR

O contador de assinantes do Feedburner pode momentaneamente retornar 0 antes de atualizar. A solução rápida: usar um valor de fallback (estático ou persistido) e exibir esse valor quando o Feedburner responder 0. Incluo o trecho PHP original, variações mais robustas, checklist e critérios de teste.

Problema observado

No meu site, no canto superior direito, eu mostrava algo como “767 Subscribers and Counting!!”. Esse número vinha do Feedburner. Os chicklets (ícones) do Feedburner funcionam, mas a conversão para texto pode apresentar um bug: o contador mostra 0 por um curto período todos os dias.

Contador de texto do Feedburner no canto superior direito mostrando 767 assinantes

Algumas horas por dia o valor aparece como 0 antes de ser atualizado com o valor real. Isso acontece tanto com o contador em texto quanto com os chicklets. Se o seu site usa cache, o 0 pode ser exibido para muitos visitantes — algo embaraçoso, especialmente se o número real for alto.

Exemplo de site mostrando 0 assinantes apesar do valor real ser maior

Solução rápida e direta (passo a passo)

Assumindo que você já segue a abordagem que converte o contador do Feedburner em texto (por exemplo o tutorial do ThemeTation), edite o arquivo onde o contador é exibido (Header.php ou Sidebar.php). Procure a linha:

$fb = $xml->feed->entry['circulation'];

Logo abaixo, adicione uma linha para definir um fallback (valor alternativo):

$fc = "XXX"; // substitua XXX por um número realista similar ao seu total de assinantes

Depois, localize o ponto onde o código imprime o valor, por exemplo:

echo $fb;

Substitua por este bloco condicional:

if ($fb == "0")
    echo $fc;
else
    echo $fb;

Tudo isso deve estar dentro das tags PHP. Funcionamento: quando o Feedburner retornar 0, será exibido o valor definido em $fc.

Versões mais robustas (alternativas e melhorias)

  1. Fallback persistido em arquivo (recomendado para evitar atualizar manualmente):
// caminho seguro fora da web root, por exemplo /var/www/.feed-fallback
$fallback_file = __DIR__ . '/feed-fallback.txt';
$fc = is_readable($fallback_file) ? trim(file_get_contents($fallback_file)) : 'XXX';

if ($fb == "0")
    echo $fc;
else {
    echo $fb;
    // atualizar fallback quando o valor real estiver disponível
    if (!empty($fb) && $fb !== '0') file_put_contents($fallback_file, $fb);
}
  1. Em WordPress: usar transients ou opções para armazenar o último valor conhecido e evitar mostrar 0 quando o feed momentaneamente falhar:
$last = get_option('feedburner_last_count', 'XXX');
if ($fb == "0")
    echo $last;
else {
    echo $fb;
    update_option('feedburner_last_count', $fb);
}
  1. Cache programático: fazer fetch do Feedburner via cron (ou wp-cron) a cada X minutos, armazenar o resultado num arquivo/option/transient e servir a partir desse cache. Isso remove dependência de leituras em tempo real.

  2. Usar o chicklet oficial como fallback visual se o texto não puder ser confiável.

Quando essa técnica falha ou é insuficiente

  • Se o Feedburner retorna valores incorretos (além de 0) ou o XML muda de estrutura, o parsing pode falhar.
  • Se você precisa que o número seja absolutamente preciso em tempo real (por exemplo, em campanhas ao vivo), um fallback estático não é ideal.
  • Em sites com múltiplos servidores, garanta que o arquivo de fallback seja compartilhado (NFS, DB ou opção do WordPress) para evitar inconsistências.

Mini-metodologia de implementação (passos recomendados)

  1. Identifique o arquivo que imprime o contador (Header.php / Sidebar.php / widget).
  2. Faça backup do arquivo original.
  3. Adicione uma solução de fallback simples primeiro (variável $fc).
  4. Teste localmente e em staging por 24 horas para verificar ocorrência do 0.
  5. Se o bug ocorrer, implemente fallback persistido (arquivo, opção ou transient).
  6. Se usar cache no site, ajuste a expiração para evitar cache de página com 0.
  7. Monitore por alguns dias e ajuste a freqüência de atualização do cache.

Checklist por função

  • Dono do site
    • Verificar que a contagem exibida nunca ficará 0 por mais de alguns minutos.
    • Confirmar que o fallback mostrado é realista.
  • Desenvolvedor
    • Implementar lógica condicional para fallback.
    • Persistir último valor conhecido (arquivo/opção/transient).
    • Garantir permissões seguras para arquivo de fallback.
  • Administrador de sistema
    • Se múltiplos servidores, implementar armazenamento centralizado (DB/S3/NFS).
    • Configurar cron para atualização programada do valor.

Critérios de aceitação (Kriterii priemki)

  • Não exibir 0 no contador visível ao público durante ao menos 72 horas de testes.
  • O valor exibido deve corresponder ao último valor conhecido quando o feed responder 0.
  • Em caso de mudança real no número, o fallback deve ser atualizado automaticamente quando o feed retornar um número válido.

Testes práticos

  • Simule resposta do feed com 0 e confirme que o fallback aparece.
  • Forçe leitura inválida do XML e verifique que o site não mostra erro de parsing.
  • Teste com e sem sistema de cache ativo para confirmar comportamento.

Segurança e permissões

  • Se usar arquivo para fallback, armazene-o fora da web root quando possível.
  • Controle permissões: arquivo somente gravável pelo usuário do processo web.
  • Evite gravar dados vindos diretamente do feed sem validação.

Glossário em uma linha

  • Feedburner: serviço que fornece estatísticas e distribuição de feeds RSS.
  • Chicklet: pequeno ícone/contador do Feedburner.
  • Fallback: valor alternativo exibido quando o original falha.

Exemplo de mensagem final e boas práticas

Importante: o fallback evita mostrar 0 ao público, mas não substitui uma solução robusta de coleta e cache. Para produção, prefira persistir o último valor conhecido e atualizar via cron/worker. Ajuste o tempo de cache das páginas para não servir conteúdo desatualizado por longos períodos.

Resumo

  • O problema do 0 no Feedburner é comum e temporário.
  • A correção imediata é simples: exibir um valor de fallback quando o feed retornar 0.
  • Para produção, persista o último valor conhecido e atualize-o periodicamente.

Se quiser, posso gerar um patch específico para o seu tema (informe o trecho atual do seu arquivo header/sidebar) ou um snippet pronto para WordPress com transients e permissões tratadas.

Autor
Edição

Materiais semelhantes

Apagar mensagens e conversas no Microsoft Teams
Microsoft Teams

Apagar mensagens e conversas no Microsoft Teams

Photosynth no Windows 10: instalação e alternativas
Guias Técnicos

Photosynth no Windows 10: instalação e alternativas

AirDrop: transferir arquivos entre iPhone e Mac
Tutoriais

AirDrop: transferir arquivos entre iPhone e Mac

Como ver TF1 nos EUA — 4 formas de contornar geoblocks
Streaming

Como ver TF1 nos EUA — 4 formas de contornar geoblocks

Corrigir erro Origin 65546:0 no Windows
Suporte Técnico

Corrigir erro Origin 65546:0 no Windows

Corrigir 0 assinantes no Feedburner
WordPress

Corrigir 0 assinantes no Feedburner