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 😀

Posts Similares

  • Veja o novo design do Dashboard do WordPress

    Embora nada fique parado por muito tempo no WordPress, o design do painel do seu blog não mudou muito ultimamente. Enquanto foram adicionadas novas funcionalidades e feitos alguns ajustes ao longo do caminho, o dashboard tem esperado por uma atualização por algum tempo. Com isso em mente, há sete semanas, um grupo desconexo de web…

  • Como excluir as páginas do resultado de busca ?

    Uma maneira de se excluir as páginas do resultado de busca é usar o plugin Search Exclude. Entretanto, como sou adepto da filosofia “Quanto menos plugins melhor”, outra solução interessante é adicionar um filtro no functions.php que adicione na busca apenas as categorias desejadas, excluindo assim todo o restante:

  • Funções de usuários e Capacidades do WordPress – Parte 1: O básico

    Este artigo é parte de um tutorial dividido em três partes abordando o tópico dos usuários (users), funções (roles) e capacidades (capabilities) no WordPress. Esta série irá abordar a arquitetura e design dos user roles no WordPress; ressaltar as funções mais importantes para interação com usuários e gestão de roles e capabilities; e no último tutorial,…

  • Removendo o /category/ do seu blog

    Na maioria das vezes o /category/ antes do nome da categoria é desnecessário em nosso blog, porém nativamente não é possível o retirar no WordPress. É possível retirar usando alguns plugins de SEO como o Yoast e o Rank Math, mas se você quer retirar isso sem usar plugins você pode modificar o arquivo .htaccess…

  • Como exibir o número de resultados na busca do WordPress

    Abra o arquivo search.php. Nele, procure pela seguinte linha: <h2 class=”pagetitle”>Resultado da busca</h2> E a substitua pela linha abaixo: <h2 class=”pagetitle”>Resultado da busca por <?php /* Search Count */ $allsearch = &new WP_Query(“s=$s&showposts=-1″); $key = wp_specialchars($s, 1); $count = $allsearch->post_count; _e(”); _e(‘<span class=”search-terms”>’); echo $key; _e(‘</span>’); _e(‘ — ‘); echo $count . ‘ ‘; _e(‘artigos’);…

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

9 Comentários

  1. 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.

  2. 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.