WordPress某篇文章显示所有评论者名称或头像

在某篇文章或当前文章的适当位置显示所有评论者名称列表,或在文章列表摘要下方显示评论者头像,可以引导读者也发个热情洋溢的评论。

1. 显示评论者名称

1.1 效果

独元殇, 耳朵的主人, 雅岚, Kevin’s, 小彦, 阿和, Mr.Chou等人对本文发表了17条热情洋溢的评论。

1.2 代码

php
<br />
  function get_comment_authors_list( $id = 0, $sep = ', ' ) {<br />
    $post_id = $id ? $id : get_the_ID();<br />
    if ( $post_id ) {<br />
      $comments = get_comments( array(<br />
        'post_id' => $post_id,<br />
        'status'  => 'approve',<br />
        'type'    => 'comment',<br />
      ) );</p>
<p>      $names = array();<br />
      foreach ( $comments as $comment ) {<br />
        $name = $comment->comment_author;<br />
        if ( $comment->user_id ) {<br />
          $user = get_userdata( $comment->user_id );<br />
          $name = $user ? $user->display_name : $name;<br />
        }</p>
<p>        $arr = explode( ' ', trim( $name ) );<br />
        if ( ! empty( $arr[0] ) && ! in_array( $arr[0], $names ) ) {<br />
          $names[] = $arr[0];<br />
        }<br />
      }<br />
      unset( $comments );</p>
<p>      $sep = $sep ? $sep : ', ';<br />
      return implode( $sep, $names );<br />
    }<br />
  }<br />
  add_shortcode( 'comment_authors_list', 'comment_authors_list_shortcode' );</p>
<p>  function comment_authors_list_shortcode( $atts = array() ) {<br />
    $atts = shortcode_atts( array(<br />
      'post_id'  => 0,<br />
      'list_sep' => '',<br />
    ), $atts );</p>
<p>    return get_comment_authors_list( $atts['post_id'], $atts['list_sep'] );<br />
  }<br />

1.3 使用方法

1.3.1 调用ID为 123 文章的所有评论者名称,并在模板中使用:

php
<br />
<?php echo get_comment_authors_list('123'); ?>

1.3.2 调用ID为 123 文章的所有评论者名称,并在文章添加短代码:

php
<br />
[comment_authors_list post_id="123" /]

1.3.3 调用当前文章所有评论者名称,并放在当前文章页面模板中,如本站评论列表上面。

php
<br />
<?php echo get_comment_authors_list(); ?>

当然也可以在当前文章中调用:

php
<br />
[comment_authors_list /]

2. 显示头像(加强版)

其实在折腾上面名称时特别想弄一个头像版(替代文字名称)。

2.1 代码

php
<br />
<?php<br />
    $nums=20; //要显示几个评论<br />
    $get_comments_num=30; //获取最大评论数,主要用来排除博主的评论。<br />
    $fc_comments = get_comments('status=approve&type=comment&number='.$get_comments_num.'&post_id='.get_the_ID());<br />
    if ( !empty($fc_comments) ) {<br />
        $my_email='nick@abc.com'; //排除管理员的评论<br />
        $i = 1;<br />
?><br />
    <div class="fc_comments"><br />
        <ul><br />
            <?php<br />
                $commentcount = $fc_comments->comment_count;<br />
                $fc_output='';<br />
                foreach ($fc_comments as $fc_comment) {<br />
                    if ($fc_comment->comment_author_email != $my_email) {<br />
                        $fc_avatar=get_avatar($fc_comment->comment_author_email,60);<br />
                        $fc_output .= '<li><a href="'<br />
                        .get_comment_link( $fc_comment->comment_ID, array('type' => 'all')).'">'<br />
                        .$fc_avatar<br />
                        .'</a><ul><li>'<br />
                        .$fc_avatar<br />
                        .'<p>'<br />
                        .'<strong>'.$fc_comment->comment_author.'</strong>'<br />
                        .$fc_comment->comment_date<br />
                        .'</p><p>'<br />
                        .convert_smilies(strip_tags($fc_comment->comment_content))<br />
                        .'</p></li></ul></li>';<br />
                        if ($i == $nums || $i == $commentcount) break; //评论数量达到退出遍历<br />
                        ++$i;<br />
                    }<br />
                }<br />
                echo $fc_output;<br />
                if ($fc_output) echo '</p>
<li class="fc_more">', comments_popup_link('','','» more...'), '</li>
<p>';<br />
            ?><br />
        </ul><br />
    </div><br />
<?php<br />
    }<br />
?><br />

2.2 样式

以下样式仅供参考。

css
.fc_comments ul,.fc_comments ul ul p{margin:0;padding:0;}<br />
.fc_comments ul li{position:relative;list-style:none;float:left;line-height:18px;margin-right:5px;}<br />
.fc_comments ul li.fc_more{line-height:16px;padding-top:8px;}<br />
.fc_comments ul li img.avatar{width:20px;height:20px;margin:0;padding:1px;border:1px solid #ddd;}<br />
.fc_comments ul li img.avatar:hover{border-color:#999;}<br />
.fc_comments ul li:hover > ul{display:block;}<br />
.fc_comments ul ul{display:none;position:absolute;bottom:40px;left:0;}<br />
.fc_comments ul ul li{width:280px;padding:5px;border:2px solid #999;background-color:#fff;}<br />
.fc_comments ul ul li img.avatar{float:left;width:32px;height:32px;margin-right:5px;}<br />

上述代码和样式供参考,大家可以根据自己喜好和主题进行修改。Enjoy it ~~

老王于2024-07-03 22:47发布在网页设计
楚客追梦情难休,万里追寻志未酬。

赞助 点赞 1

晨岩, 雅岚, 珂泽, END, 威言威语, XI等人对本文发表了12条热情洋溢的评论。
  • 晨岩学前班
    6楼

    照着文章弄了一下,效果还行,不过要适应一下

    1. 老王作者

      嗯,就一段代码。。。😀

  • 额~~~咱不是看到你这儿整这个好久了么。。

    1. 老王作者

      嗯,文字是整了好久,但头像一直想弄没成功,最近刚找到方法,于是做个记录备忘。😀

  • 珂泽学前班
    4楼

    效果还挺不错的

    1. 老王作者

      嗯嗯 😊

  • 好。

    1. 老王作者

      在干嘛呢?

  • 最近Wordpress整挺多,哈哈

    1. 老王作者

      没有整,只是水一篇。。。😂

  • 越来越6了

    1. 老王作者

      嘿嘿,向你学习。😊

  • 头像预览

    发表评论

    您的邮箱地址不会被公开, 必填项已用 * 标注

    找回密码

    请输入您的邮箱地址,我们将向您发送重置密码的链接。

    您好,朋友!

    请输入相关信息,以便我们提供更优质的服务!

    欢迎回来!