判断用户是否发表评论的最佳方法?
题
我有一个 if ($comment->user_id)
块以选择默认的管理注释Gravatar(与非用户不同)。但是,如果用户使用注册电子邮件评论,即使他们未登录时,我仍然希望使用此Gravatar。
编辑
我已经在使用
if ($comment->user_id){
//comment by registered user
$avatar = '/images/bird_comments_big.png';
}else{
//comment by none registered user
$avatar = '/images/bird_comments_pink.png';
}
和
<div><?php echo get_avatar($comment, 70, get_bloginfo('template_url').$avatar); ?></div>
如果用户被记录在发表评论中,则确实可以满足IF语句。但是,如果用户使用他们的注册电子邮件(即绑定到WP中的登录),而无需登录, user_id
不存在,并且出现未注册用户的图标。 user_id
仅在用户登录时存储。
我还想测试给出的电子邮件是否与注册用户匹配,无论他们是否已登录。
解决方案 2
if ($comment->user_id || email_exists($comment->comment_author_email)){
//comment by registered user
$avatar = '/images/registered_user.png';
}else{
//comment by none registered user
$avatar = '/images/non_registered_user.png';
}
和
<div><?php echo get_avatar($comment, 70, get_bloginfo('template_url').$avatar); ?></div>
我可以理解的一种简洁的方式。
其他提示
您可以简单地检查
if ($comment->user_id > 0){
//comment by registered user
}else{
//comment by none registered user
}