我正在尝试获取对帖子发表评论的所有人的列表,然后对照当前登录的用户检查该列表。如果当前登录的用户包含在该列表中,那么我不会显示评论表单,否则他们可以留下评论。所以从本质上说,我只希望人们能够在每篇帖子上发表一次评论。
我想我很接近了,但我一直在列出所有对任何帖子发表评论的人的名单。
这是我的代码:
<?php global $post;
$comments = get_comments($post->ID); // get all comment author emails
foreach($comments as $comment) :
$existingcommenters = $existingcommenters.\', \'.$comment->comment_author_email;
endforeach;
$current_user = wp_get_current_user(); // then we check those emails against the current users email
$commenting = $current_user->user_email; ?>
<?php $args = array( // i then list my arguments, which I\'ve omitted for clarity here
); ?>
<?php if (strpos($existingcommenters,$commenting) !== false) { // if the user already has a review, don\'t let them post another ?>
<p>You\'ve already reviewed this business.</p>
<?php } else { comment_form($args); } ?>
所以我想
$existingcommenters
应该只包含对此帖子发表评论的人的列表,如
$comments = get_comments($post->ID);
应该将该调用设置为仅获取此帖子的评论列表,对吗?
如果我回音$post->ID
在这段代码的任何地方,它都会成功地返回当前帖子的ID。
但如果我回应$existingcommenters
, 它显示了每个评论者的列表。
知道我做错了什么吗?