我希望我的Wordpress博客中的字幕可以计算我帖子上Facebook评论的数量。插入Facebook的代码后
<span class="comment-count">
<fb:comments-count href="<?php echo get_permalink($post->ID); ?>">
</fb:comments-count> comments
</span>
我意识到,当我只有一条评论时,会打印出“1条评论”,复数形式。我需要对代码进行哪些更改才能:
很抱歉,如果这是一个愚蠢的问题,但我完全不熟悉编码(PHP),Wordpress和Facebook工具。
答案 0 :(得分:5)
单独使用fb:comments-count
标记,您不能。您需要做的是首先将注释的数量放入PHP变量中,然后根据该变量的值打印正确的短语。您可以使用PHP SDK,FQL或Graph 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>
答案 1 :(得分:3)
直接PHP方法的替代方法是使用ngettext()函数。
<?php
echo ngettext("%d comment", "%d comments", $comments);
?>
答案 2 :(得分: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';
}