<fb: comments-count> не работает в моем блоге на WordPress - PullRequest
1 голос
/ 11 мая 2011

Я использую плагин комментариев Facebook на WordPress, и поле комментариев работает нормально, но я хочу получить доступ к количеству отсчетов на странице индекса и на отдельных страницах.На страницах загружается Javascript Facebook.

Вот код, который я использовал: <fb:comments-count href=<?php echo get_permalink() ?>/></fb:comments-count> comments

Но он не учитывает комментарии FB.

Есть ли простой код, который позволяет мне получить количество комментариев?

Спасибо,

Ответы [ 6 ]

3 голосов
/ 28 июля 2011

Включите эту функцию где-нибудь в файл шаблона :

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 .

2 голосов
/ 02 сентября 2012

Здесь часто не появляются комментарии:

graph.facebook.com/?ids = [your url]

Вместо этого они хорошо выглядят в

graph.facebook.com/comments/?ids = [your url]

Отсюда и ценность окончательного решения.

1 голос
/ 21 июня 2012

Это работает для меня:

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));
}
1 голос
/ 16 октября 2011

Ответ от 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 не решит прочитать FAQ по fb: comments-count и обнаружит, что он не работает :) (http://developers.facebook.com/docs/reference/plugins/comments/ да, крутокомментарии).

Кстати, я применил эту функцию в Drupal 7 :) Большое спасибо ifennec, вы показали мне путь.

0 голосов
/ 04 сентября 2013

Просто поместите эту функцию в functions.php и передайте почтовый URL-адрес функции 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);

}

0 голосов
/ 27 сентября 2012

Это решено.

<p><span class="cmt"><fb:comments-count href=<?php the_permalink(); ?>></fb:comments-count></span> Comments</p>

Проблема заключалась в том, что в моем случае я использовал «url», а не «href».

...