Exibindo a quantidade de comentários do Facebook em seu post

ATENÇÃO: A API do Facebook foi alterada em Agosto de 2016, por isso a quantidade não é mais exibida e assim este código não funciona mais. Como não ficou claro se essa mudança é em definitivo ou não, mantivemos a postagem aqui mas provavelmente ela não funcionará mais.

Em um dos projetos que trabalhei recentemente, utilizamos os comentários do Facebook na página de cada post e vimos a necessidade de exibir em outras páginas, como na listagem de todos os posts, de posts de uma categoria, e alguns outros locais, a quantidade de comentários que esta página teve.

Utilizando os comentários do WordPress isto é uma tarefa simples, mas como pegar esta quantidade total de comentários em uma página diretamente pela API do Facebook? Descobri como, e segue neste post a solução.

Adicione o trecho abaixo no arquivo functions.php de seu tema (e caso ele não exista, crie-o):

function fb_comments($url){
$json = json_decode(file_get_contents('https://graph.facebook.com/?ids=' . $url));
return ($json->$url->comments) ? $json->$url->comments : 0;
}

O código acima passa a url da página para a função e a utiliza para pegar todos os dados do facebook por sua API, decodificar o JSON retornado e pegar o campo que contém a quantidade total de comentários na página.

Para exibir tal quantidade no seu front-end, basta utilizar a seguinte função onde desejar, dentro do loop dos posts:

<?php echo fb_comment(get_permalink()); ?>

E pronto! Em 5 linhas de código seus problemas estão resolvidos :D

9 Comments

  1. Legal muito boa dica. Tem algum exemplo dele em funcionamento?

  2. Ótimas dicas amigo, valeu!

  3. Exatamente isso q eu estava a procurar, vou implementar logo os comentários do facebook em meu site sobre Sushi!

    Obrigado a todo equipe do Tudo para WP.

  4. Show de bola, o melhor formulário que existe para blogs é o nativo do facebook. Ele gera fluxo e comentário de pessoas reais. Muito difícil ver fakes postarem pelo facebook.

  5. Eu fiz e não deu certo, esta completo este código?

  6. Realmente não funciona, o problema disso seria a quantidade de requisições extras para carregar a API do Facebook.

    É melhor não exibir a quantidade de comentários e se der inserir um lazy load no facebook comments, inclusive, existe um plugin para isso.

Deixe uma resposta