这涉及WordPress插件开发。即使用户实际上没有登录到WordPress,但已经发表评论,WordPress也会记得最后一次。我想切换显示“订阅时事通讯”复选框,如果他们之前已订阅过时事通讯。我已经找到了复选框,它会在发布时写入存储评论作者电子邮件的另一个表。但是,如果用户已经订阅了,我希望不显示复选框。如果我有一个实际的电子邮件地址,很容易不显示复选框,但我不知道如何在显示评论表单时检索电子邮件地址。
注意,使用get_currentuserinfo()不适用于此处,因为用户是评论员,而不是博客文章管理员或作者。
我需要一些用户来到他们还没有评论过的帖子。他们可能对其他帖子发表评论,而不是这一篇。在WordPress中,您会注意到它会自动知道这一点并通过cookie分配名称和邮件字段值。
答案 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;
}