zackaustin
  • 0
Новичок

Количество комментариев в Facebook

  • 0

Я немного любитель, когда дело доходит до PHP и WordPress, но я сделал следующий код:

function fb_comment_count($url = 'some url here') {
$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;
}

Что он делает, так это извлекает количество комментариев из Facebook Graph и отображает его на странице. Чтобы это работало, я должен вручную объявлять URL-адрес для каждого вызова.

Что мне сложно, так это настроить его так, чтобы при вызове функции в шаблоне по умолчанию использовалась постоянная ссылка сообщения. Я честно перепробовал все, что пришло мне в голову.

get_permalink() не работает, когда вы объявляете аргументы в функции.

Любая помощь будет принята с благодарностью. Спасибо!

Share
  1. Наконец-то заработало так, как я хотел. Оказывается, вы не должны использовать file_get_contents() в WordPress. я использовал wp_remote_retrieve_body(wp_remote_get($url, array('sslverify'=>false)))

    • 0
  2. Окончательная версия используемого кода:

        function fb_comment_count($link = 'link') {
    global $post;
    $url = 'https://graph.facebook.com/';
    $posturl = get_permalink($post->ID);
    $url .= $posturl;
    
    $filecontent = wp_remote_retrieve_body(wp_remote_get($url, array('sslverify'=>false)));
    $json = json_decode($filecontent);
    $count = $json->comments;
    if ($count == 0 || !isset($count)) {
        $count = 0;
    }
    
    $comments = $count;
    if ($count == 1) {
        $comments .= ' Comment';
    }
    elseif ($count == 0) {
        $comments = 'Leave a Comment';
    }
    elseif ($count > 1) {
        $comments .= ' Comments';
    }
    if ($link == 'nolink') {
        echo $comments;
    }
    else {
        echo '<a href="'.$posturl.'#comments" title="Comments for '.$post->post_title.'">'.$comments.'</a>';
    }
    }
    
    • 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;
    }
    
    • 0
  4. Кажется чрезвычайно сложным, когда вы можете просто использовать это:

    <fb:comments-count href="<?php echo get_permalink($post->ID); ?>"></fb:comments-count> Comments
    
    • 0

Оставить ответ

You must login to add an answer.