如何在WordPress中获得评论作者?

时间:2010-03-10 19:53:08

标签: wordpress email comments

这涉及WordPress插件开发。即使用户实际上没有登录到WordPress,但已经发表评论,WordPress也会记得最后一次。我想切换显示“订阅时事通讯”复选框,如果他们之前已订阅过时事通讯。我已经找到了复选框,它会在发布时写入存储评论作者电子邮件的另一个表。但是,如果用户已经订阅了,我希望不显示复选框。如果我有一个实际的电子邮件地址,很容易不显示复选框,但我不知道如何在显示评论表单时检索电子邮件地址。

注意,使用get_currentuserinfo()不适用于此处,因为用户是评论员,而​​不是博客文章管理员或作者。

我需要一些用户来到他们还没有评论过的帖子。他们可能对其他帖子发表评论,而不是这一篇。在WordPress中,您会注意到它会自动知道这一点并通过cookie分配名称和邮件字段值。

2 个答案:

答案 0 :(得分:1)

您可以使用get_comments执行此操作,它会返回一个键为comment_author_email的数组。

基本上,您必须遍历所有帖子的所有评论,检索所有电子邮件,然后根据您的简报数据进行检查。

有关语法(以及可能的替代方案)的更多信息,请访问: http://codex.wordpress.org/Function_Reference/get_comments

答案 1 :(得分:0)

这是我已经解决的例程,但也许你可以通过WordPress codex中的某些内容做得更好?

function getCommentAuthorEmail() {
global $user_level;

  get_currentuserinfo();
  if($user_level > 0) { //if signed into wordpress as admin or author
    return ''; //don't provide anything
  }

  $sEmail = '';
  try {
    foreach($_COOKIE as $sKey => $sVal) {
      if (strpos(' ' . $sKey, 'comment_author_email')>0) {
        $sEmail = urldecode($sVal);
        break;
      }
    }
  } catch (Exception $e){}
  return $sEmail;
}