我在WordPress上使用Facebook评论插件,评论框工作正常,但我想访问索引页面和单页面上的计数。在页面上,Facebook Javascript加载在页面上。
这是我使用的代码:
<fb:comments-count href=<?php echo get_permalink() ?>/></fb:comments-count> comments
但它没有计算FB评论。
是否有一个简单的代码可以让我检索评论数量?
谢谢,
答案 0 :(得分:3)
在模板文件中的某处包含此功能:
function fb_comment_count() {
global $post;
$url = get_permalink($post->ID);
$filecontent = file_get_contents('https://graph.facebook.com/?ids=' . $url);
$json = json_decode($filecontent);
$count = $json->$url->comments;
if ($count == 0 || !isset($count)) {
$count = 0;
}
echo $count;
}
在您的主页或任何地方使用它
<a href="<?php the_permalink() ?>"><?php fb_comment_count() ?></a>
有同样的问题,这个功能对我有用......如果你收到错误......试试看this。
答案 1 :(得分:2)
这些评论通常不会出现在这里:
graph.facebook.com/?ids = [your url]
相反,它们很好地出现在
中graph.facebook.com/comments/?ids = [your url]
因此最终解决方案的价值。
答案 2 :(得分:1)
ifennec的回答看起来很好,但实际上没有用(Facebook可能会改变一些东西,现在只返回股票数量)。
您可以尝试获取所有评论:
$filecontent = file_get_contents(
'https://graph.facebook.com/comments/?ids=' . $url);
并统计所有:
$json = json_decode($filecontent);
$content = $json->$url;
$count = count($content->data);
if (!isset($count) || $count == 0) {
$count = 0;
}
echo $count;
这只是一个修复,直到facebook决定阅读有关fb:comments-count的常见问题解答,并发现它无效:)(http://developers.facebook.com/docs/reference/plugins/comments/是的,很棒的评论)。
顺便说一下,我在Drupal 7中应用了这个功能:)非常感谢ifennec,你给我指路了。
答案 3 :(得分:1)
这对我有用:
function fb_comment_count() {
global $post;
$url = get_permalink($post->ID);
$filecontent = file_get_contents('https://graph.facebook.com/comments/?ids=' . $url);
$json = json_decode($filecontent);
echo(count($json->$url->comments->data));
}
答案 4 :(得分:0)
这已经解决了。
<p><span class="cmt"><fb:comments-count href=<?php the_permalink(); ?>></fb:comments-count></span> Comments</p>
问题在于我在使用'url'而不是'href'属性。
答案 5 :(得分:0)
只需将此功能放在 functions.php 中,然后将帖子网址传递给功能fb_comment_count ,只要在主题文件中调用它
即可function fb_comment_count($url) {
$filecontent = file_get_contents('https://graph.facebook.com/comments/?ids=' . $url);
$json = json_decode($filecontent);
$content = $json->$url;
echo count($content->comments->data);
}