我有一个 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
}
许可以下: CC-BY-SA归因
scroll top