web-dev-qa-db-fra.com

Nombre de commentaires Facebook

Je suis un peu amateur en ce qui concerne PHP et WordPress, mais j’ai truqué le code suivant:

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

Cela permet de récupérer le nombre de commentaires dans le graphique de Facebook et de l’afficher sur une page. Pour que cela fonctionne, je dois déclarer manuellement l'URL de chaque appel.

Ce que j’ai du mal à faire, c’est de le configurer de sorte que lorsque vous appelez la fonction dans le modèle, celle-ci affiche par défaut le permalien de la publication. J'ai honnêtement essayé tout ce qui m'est venu à l'esprit.

get_permalink () ne fonctionne pas lorsque vous déclarez les arguments dans la fonction.

Toute aide serait grandement appréciée. Merci!

3
Zack Austin

Version finale du code utilisé:

    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

Cela semble extrêmement compliqué lorsque vous pouvez simplement utiliser ceci:

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

Essayez ceci et voyez ce que cela vous donne:

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