wordpress首页显示最近的评论者头像
代码如下,加入到合适位置。直接显示所有来访者相应博客地址,并把地址用base64显示,不重复显示头像。(如果有网址,头像将被包裹在一个链接中;如果没有网址,头像则直接通过get_avatar()函数显示,没有链接。
<?php // 获取所有评论并按照评论ID排序 $comments = get_comments(array( 'status' => 'approve', // 只获取已经被批准的留言 'order' => 'DESC', // 倒序排列 'author__not_in' => array(1), // 排除博主的ID,这里假设博主ID是1 )); // 用来存储邮箱对应的最新用户名和评论次数 $user_data = array(); // 遍历评论,按邮箱合并用户 foreach ($comments as $comment) { $email = $comment->comment_author_email; $name = $comment->comment_author; $url = $comment->comment_author_url; // 如果邮箱还没有记录,则添加记录 if (!isset($user_data[$email])) { $user_data[$email] = array( 'name' => $name, 'count' => 1, 'url' => $url ); } else { // 如果邮箱已存在,更新评论次数 $user_data[$email]['count']++; // 如果当前评论比之前记录的更新,则更新名字和网址 // 由于评论已经按ID降序排列,所以第一次遇到的评论就是最新的 if ($user_data[$email]['name'] === '') { $user_data[$email]['name'] = $name; } if ($user_data[$email]['url'] === '') { $user_data[$email]['url'] = $url; } } } // 显示合并后的用户数据 foreach ($user_data as $email => $data) { $name = $data['name']; $count = $data['count']; $url = $data['url']; echo '<div class="comment-author-container" style="position: relative; display: inline-block;line-height: 2em;margin-right: 1.7em;">'; // 检查留言者是否填写了网址 if (!empty($url)) { // 显示名字并显示评论次数,带跳转链接 echo '<a rel="nofollow" target="_blank" href="' . home_url() . "/goto?url=" . base64_encode($url) . '">'; echo '<span class="comment-author-name">' . esc_html($name) . '</span>'; echo '</a>'; } else { // 显示名字及评论次数,不带链接 echo '<span class="comment-author-name">' . esc_html($name) . '</span>'; } // 在名字右上角显示留言次数 echo '<span class="comment-count" style="position: absolute; top: -10px; right: -15px; color: #007bff; padding: 2px 5px;font-size: 12px;">' . $count . '</span>'; echo '</div>'; // 结束评论容器 } ?>
评论功能已经关闭!