web-dev-qa-db-ja.com

Facebookのコメント数

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()は機能しません。

任意の助けは大歓迎です。ありがとうございます。

3
Zack Austin

使用したコードの最終バージョン:

    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>';
}
}
5
Zack Austin

あなたがこれを使用することができたときに非常に複雑に思える:

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

これを試してみて、それがあなたに何をもたらすかを見てください。

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;
}
1
VicePrez