判断评论是否来自用户的最佳方式是什么?

时间:2011-04-08 作者:two7s_clash

我有一个if ($comment->user_id) 块来选择默认的管理注释gravatar(与非用户的不同)。但我仍然希望如果用户使用其注册的电子邮件发表评论,即使他们在未登录时发表评论,也可以使用此gravatar。最好的测试方法是什么?

EDIT

我已经在使用

 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 is only stored if the user is logged in.

我还想测试给定的电子邮件是否与注册用户匹配,无论他们是否登录

2 个回复
最合适的回答,由SO网友:two7s_clash 整理而成

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>
这似乎是我能理解的最简洁的方式。

SO网友:Bainternet

您可以简单地检查

if ($comment->user_id > 0){
//comment by registered user
}else{
//comment by none registered user
}

结束

相关推荐

是否有任何过滤器可以将额外的列添加到EDIT-Comments.php上的LIST表中?

我正在尝试修改edit-comments.php 管理页面,我没有看到任何可与之相比的过滤器manage_posts_columns 等有没有简单的方法可以做到这一点?我想做这件事的唯一真正方法是WP_Comments_List_Table 使用我自己的类,覆盖get_columns 和其他相关功能,只需将我自己的页面添加到“管理”菜单,该菜单以编辑注释的相同方式使用此新类。php使用WP_Comments_List_Table.有没有更简单的方法可以做到这一点,而我只是没有看到?