3

我希望我的 Wordpress 博客中的字幕能够统计我帖子上 Facebook 评论的数量。插入 Facebook 的代码后

<span class="comment-count">
   <fb:comments-count href="<?php echo get_permalink($post->ID); ?>">
   </fb:comments-count> comments
</span>

我意识到,当我只有 1 条评论时,它会以复数形式打印“1 条评论”。我需要对代码进行哪些更改才能:

  • 无评论时打印“无评论”
  • 当只有一条评论时,以单数形式打印“1 条评论”
  • 当有多个评论时,以复数形式打印“X 评论”

抱歉,如果这是一个愚蠢的问题,但我对编码 (PHP)、Wordpress 和 Facebook 工具完全陌生。

4

3 回答 3

5

单独使用fb:comments-count标签,你不能。您需要做的是首先将注释数放入 PHP 变量中,然后根据该变量的值打印正确的短语。您可以使用PHP SDKFQLGraph API检索评论数。然后,一种打印所需内容的方法:

 <?php
 $comments = getCommentCountUsingGraphAPI();

 if ($comments == 0) {
    echo "No comments";
 } elseif ($comments == 1) {
    echo "1 comment";
 } else {
    echo "$comments comments";
 }
 ?>

但是妥协要容易得多,只需稍微修改一下您的演示文稿即可完全避免多元化问题:

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

或者:

 <span class="comment-count" title="Comments">
      <fb:comments-count href="<?php echo get_permalink($post->ID); ?>"></fb:comments-count>
 </span>
于 2011-11-27T20:42:12.457 回答
3

直接 PHP 方法的替代方法是使用ngettext()函数。

<?php
echo ngettext("%d comment", "%d comments", $comments);
?>
于 2013-07-07T18:52:12.880 回答
0

我将 John 的解决方案与9bugs 提示与 FQL 结合起来,效果很好。将此添加到functions.php:

 function fbCount($url) {
    $base_url = "http://graph.facebook.com/fql?q=";
    $query = "SELECT like_count, total_count, share_count, click_count, comment_count FROM link_stat WHERE url = '$url' ";
    $new_url = $base_url . urlencode($query);
    $data = @file_get_contents($new_url);
    $data = json_decode($data);
    return $data->data[0];
}

然后将此添加到您希望在 content.php 中显示评论计数的位置:

    $url = get_permalink($post->ID);
    $fb = fbCount($url);

     if ($fb->comment_count == 0) {
        echo '<a href="' . $url . '"> leave a comment! </a> ';
     } elseif ($fb->comment_count == 1) {
        echo '<a href="' . $url . '"> 1 </a> comment';
     } else {
        echo '<a href="' . $url . '"> '. $fb->comment_count .  '</a> comments';
     }
于 2015-01-24T08:34:04.293 回答