在WP主题制作当中,个人感觉comments.php部分的制作是最难最复杂的。下面这个评论列表函数是之前本站自用的,自己改出来主要是添加头像alt属性,以及相应的Gravatar服务器替换。

//评论列表样式
function inlojv_comment_list($comment, $args, $depth) {
    $host = 'http://secure.gravatar.com'; // 可以替换为多说服务器:http://gravatar.duoshuo.com,http://www.gravatar.com , https://secure.gravatar.com
    $email = get_comment_author_email();
    $email_hash = md5( strtolower( trim( $email ) ) );
    $out= "$host/avatar/";
    $out .= $email_hash;
    $out .= '?s=36';
    $input_alt = get_comment_author($id);
    $tem_url = get_bloginfo("template_url");
  echo '<li '; comment_class(); echo ' id="comment-'.get_comment_ID().'">';
  echo '<div class="comt-body"'; echo ' id="comment-'.get_comment_ID().'" class="tra">';  
  //头像
  echo '<div class="cl-avatar">';
  echo <<<EOF
  <img src="{$out}" class="avatar" width="36" height="36" alt="{$input_alt}">
  <em></em>
EOF;
  echo '</div>';
  //评论主体
  echo '<div class="cl-main" id="div-comment-'.get_comment_ID().'">';    
    //信息
    echo '<div class="cl-meta">';
            if ($comment->comment_type == '') {
    $author_link = empty ( $comment->comment_author_url ) ? null : ' href="'. $comment->comment_author_url . '"';    
    $author = $comment->comment_author;    
        echo <<<EOF
        <span class="cl-author"><a title="{$author}" rel="external nofollow" target="_blank" class="cl-author-url"{$author_link}>{$author}</a></span>        
EOF;
    }
        echo '<span class="cl-time tra">'.get_comment_time( 'Y-n-j H:i' ).'</span>'; 
        if ($comment->comment_approved !== '0'){ 
            echo comment_reply_link( array_merge( $args, array('add_below' => 'div-comment', 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); 
            echo edit_comment_link(__('(编辑)'),' - ','');
        }
    echo '</div>';
    //内容
    echo '<div class="cl-content" >';
    echo convert_smilies(get_comment_text());
    if ($comment->comment_approved == '0'){
      echo '<span class="cl-approved">您的评论需要审核后才能显示,请稍后!</span><br />';
    }
    echo '</div>';    
  echo '</div>';
 echo '</div>';
}

将以上函数放在comments.php里面的评论列表回调函数中进行调用即可。

<?php wp_list_comments('callback=inlojv_get_comment_list'); ?>