下面这个完整的评论模块 comments.php 是从某主题上扒下来的,包含ajax评论(评论ajax)、虚拟验证码垃圾评论过滤、评论回复、回复邮件通知 等等主要功能。下面是各个文件的代码:以下载文件为准(新增了评论表情,修复个别bug)

comments.php
<?php
    if ( isset( $_SERVER['SCRIPT_FILENAME'] ) && 'comments.php' == basename( $_SERVER['SCRIPT_FILENAME'] ) ){
        die ( 'Please do not load this page directly. Thanks!' );
    }
?>
<?php if( comments_open() || have_comments() ) { ?>
<div class="post-comment-list" id="post-comment-list">
    <div class="comment-tab">
        <a href="javascript:;" class="current">评论(<span id="comment_count"><?php echo inlojv_get_comment_count( get_the_ID() ); ?></span>)</a>
        <a href="javascript:;" class="comment-traceback">引用(<?php echo inlojv_get_comment_count( get_the_ID(), 'pingback'); ?>)</a>
    </div>
    <?php if (!have_comments() && comments_open()) { ?>
    <div class="disabled-comment"><span class="cd-icon cm-stop" title="快来抢沙发">沙发空缺中,还不快来抢</span></div>
    <?php } ?>
    <!--评论对话框开始-->
    <?php if (comments_open()) { ?>
    <div class="comment-form-title">发表评论:</div>
    <div id="reply-form">
        <div class="popover fade top in">
        <div class="arrow"></div>
            <h3 class="popover-title"><span id="reply-text">回复</span> <span id="reply-name"></span><a id="reply-close" href="javascript:;">取消</a></h3>
            <div class="popover-content" id="reply-content"></div>
        </div>
    </div>
    <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="reply-from">
        <input type="hidden" name="no_spam" id="no_spam" value="" />
        <input type="hidden" name="reply_mail_notify" id="reply_mail_notify" value="Y" />
        <input type="hidden" id="reply_li_id" value="" />
        <?php $current_user = inlojv_get_current_user(); ?>
        <div class="comment-form">
            <div class="comment-form-content">
                <div class="comment-textarea"><textarea name="comment" id="reply_comment"></textarea></div>
                <div class="comment-input<?php echo $current_user !== false ? ' hide' : null;?>">
                    <div class="cfp cf-l">&nbsp;&nbsp;<i class="fa fa-user fa-lg" style="color:#428bca;opacity:0.4"></i>&nbsp;&nbsp;<input id="reply-author" type="text" name="author" placeholder="昵称" value="<?php echo !empty ( $current_user->display_name ) ? $current_user->display_name : ''; ?>" required /></div>
                    <div class="cfp cf-m">&nbsp;&nbsp;<i class="fa fa-envelope fa-lg" style="color:#428bca;opacity:0.4"></i>&nbsp;&nbsp;<input id="reply-email" type="text" name="email" placeholder="邮箱" value="<?php echo !empty ( $current_user->user_email ) ? $current_user->user_email : ''; ?>" required /></div>
                    <div class="cfp cf-r">&nbsp;&nbsp;<i class="fa fa-link fa-lg" style="color:#428bca;opacity:0.4"></i>&nbsp;&nbsp;<input id="reply-url" type="text" name="url" placeholder="微博或网址" value="<?php echo !empty ( $current_user->user_url ) ? $current_user->user_url : ''; ?>" required /></div>
                </div>
                <div class="clr"></div>
            </div>    
        </div>
        <div class="comment-form-submit" id="form-submit">
            <?php if( $current_user !== false ) { ?>
            <?php echo get_avatar( $current_user->user_email ); ?>
            <div class="tooltip fade right in" id="reply-current-user">
                <div class="tooltip-arrow"></div>
                <div class="tooltip-inner"><?php echo $current_user->display_name; ?><br /><a href="<?php echo wp_logout_url( get_permalink () ); ?>" title="退出当前帐号">退出</a></div>
            </div>
            <?php } ?>
            <span class="mail_notify_box<?php echo  ' mail_on' ; ?>" id="mail_notify_box" title="是否接收评论回复邮件通知"></span>
            <input type="submit" class="comment-submit-button" id="reply-submit" value="提交" />
        </div>
            <?php comment_id_fields(); ?>
            <?php do_action( 'comment_form', $post->ID ); ?>
    </form>
    <?php } else { ?>
    <div class="disabled-comment"><span class="cd-icon cm-smile">本文很不情愿地关闭了评论</span></div>
    <?php } ?>
    <!--评论对话框结束-->
    <!--评论列表开始-->
    <div class="comment-list" id="comment_list">
        <ul><?php wp_list_comments('callback=inlojv_get_comment_list'); ?></ul>
        <div id="comments_paginate"><?php paginate_comments_links(); ?></div>
    </div>
    <div class="comment-list pings-list" id="pings_list">
        <ul><?php wp_list_comments('callback=inlojv_get_pings_list&type=pingback'); ?></ul>
    </div>
    <!--评论列表结束-->
</div>
<?php } ?>
ajax-comment.php
<?php
/**
 * Handles Comment Post to WordPress and prevents duplicate comment posting.
 *
 * @package WordPress
 */
if ('POST' != $_SERVER ['REQUEST_METHOD']) {
    header ( 'Allow: POST' );
    header ( 'HTTP/1.1 405 Method Not Allowed' );
    header ( 'Content-Type: text/plain' );
    exit ();
}

function inlojv_msg($msg = '', $status = false) {
    $status = $status === true ? '1' : '0';
    $json ['status'] = $status;
    if (is_array ( $msg )) {
        foreach ( $msg as $k => $m ) {
            $json [$k] = $m;
        }
    } else {
        $json ['info'] = $msg;
    }
    die ( json_encode ( $json ) );
}
$return = '';
/**
 * Sets up the WordPress Environment.
 */
require (dirname ( __FILE__ ) . '../../../../wp-load.php');

nocache_headers ();

$comment_post_ID = isset($_POST ['comment_post_ID']) ? (int) $_POST ['comment_post_ID'] : 0;

$post = get_post ( $comment_post_ID );

if (empty ( $post->comment_status )) {
    do_action ( 'comment_id_not_found', $comment_post_ID );
    inlojv_msg ( __ ( 'Invalid comment status.' ) );
}

// get_post_status() will get the parent status for attachments.
$status = get_post_status ( $post );

$status_obj = get_post_status_object ( $status );

if (! comments_open ( $comment_post_ID )) {
    do_action ( 'comment_closed', $comment_post_ID );
    inlojv_msg ( __ ( 'Sorry, comments are closed for this item.' ) );
} elseif ('trash' == $status) {
    do_action ( 'comment_on_trash', $comment_post_ID );
    inlojv_msg ( __ ( 'Invalid comment status.' ) );
} elseif (! $status_obj->public && ! $status_obj->private) {
    do_action ( 'comment_on_draft', $comment_post_ID );
    inlojv_msg ( __ ( 'Invalid comment status.' ) );
} elseif (post_password_required ( $comment_post_ID )) {
    do_action ( 'comment_on_password_protected', $comment_post_ID );
    inlojv_msg ( __ ( 'Password Protected' ) );
} else {
    do_action ( 'pre_comment_on_post', $comment_post_ID );
}

$comment_author = (isset ( $_POST ['author'] )) ? trim ( strip_tags ( $_POST ['author'] ) ) : null;
$comment_author_email = (isset ( $_POST ['email'] )) ? trim ( $_POST ['email'] ) : null;
$comment_author_url = (isset ( $_POST ['url'] )) ? trim ( $_POST ['url'] ) : null;
$comment_content = (isset ( $_POST ['comment'] )) ? trim ( $_POST ['comment'] ) : null;

// If the user is logged in
$user = wp_get_current_user ();
if ($user->exists ()) {
    if (empty ( $user->display_name )) {
        $user->display_name = $user->user_login;
    }
    $comment_author = wp_slash ( $user->display_name );
    $comment_author_email = wp_slash ( $user->user_email );
    $comment_author_url = wp_slash ( $user->user_url );
    if (current_user_can ( 'unfiltered_html' )) {
        if (wp_create_nonce ( 'unfiltered-html-comment_' . $comment_post_ID ) != $_POST ['_wp_unfiltered_html_comment']) {
            kses_remove_filters (); // start with a clean slate
            kses_init_filters (); // set up the filters
        }
    }
} else {
    if (get_option ( 'comment_registration' ) || 'private' == $status) {
        inlojv_msg ( '必须登录后才能发言' );
    }
}

$comment_type = '';

if (get_option ( 'require_name_email' ) && ! $user->exists ()) {
    if (6 > strlen ( $comment_author_email ) || '' == $comment_author) {
        inlojv_msg ( '大虾,昵称有木有?邮箱有木有?' );
    } elseif (! is_email ( $comment_author_email )) {
        inlojv_msg ( '留下邮箱,我才能联系你啊' );
    }
}
if ('' == $comment_content) {
    inlojv_msg ( '不要走,把评论留下' );
}

$comment_parent = isset ( $_POST ['comment_parent'] ) ? absint ( $_POST ['comment_parent'] ) : 0;
$commentdata = compact ( 'comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID' );
$comment_id = wp_new_comment ( $commentdata );

$comment = get_comment ( $comment_id );
do_action ( 'set_comment_cookies', $comment, $user );


if ($comment) {
    $comment_depth = 1;
    $tmp_c = $comment;
    while ( $tmp_c->comment_parent != 0 ) {
        $comment_depth ++;
        $tmp_c = get_comment ( $tmp_c->comment_parent );
    }
    $avatar = get_avatar ( $comment, 50 );
    $author = $comment->comment_author;
    $author_link = empty ( $comment->comment_author_url ) ? null : ' href="' . $comment->comment_author_url . '"';
    $admin_class = $comment->user_id == 1 ? 'author-admin' : '';
    $comm_class = comment_class ( $admin_class, null, null, false );
    $comm_class = comment_class ( 'author-admin', null, null, false );
    $comment_id = $comment->comment_ID;
    $comment_approved = $comment->comment_approved == 0 ? '<div class="comment-moderation">你的评论需要审核通过后才会生效</div>' : null;
    $content_text = apply_filters ( 'comment_text', $comment->comment_content );
    $time = get_comment_time ( 'n月j日 H:i' );
    $is_admin = $comment->user_id == 1 ? ' admin' : null;
    $admin_avatar = $comment->user_id == 1 ? ' admin-avatar' : null;
    $reply = get_comment_reply_link ( array (
            'reply_text' => '回复',
            'depth' => $comment_depth,
            'max_depth' => get_option ( 'thread_comments_depth' ) 
    ) );
    
    $return = '<li ' . $comm_class . ' id="comment-' . $comment_id . '">
        <div class="comment-avatar' . $admin_avatar . '">
            ' . $avatar . '
            <a title="' . $author . '" rel="nofollow" target="_blank" class="comment-author-url"' . $author_link . '>' . $author . '</a>
        </div>
        <div class="comment-container' . $is_admin . '">
            <div class="comment-connent">' . $content_text . $comment_approved . '</div>
            <div class="comment-info"><span>' . $time . ' </span>' . $reply . '<div class="clr"></div></div>
            <div class="comment-tr"></div>
        </div>
    </li>';
}

$return = $comment_depth > 1 ? '<ul class="children">' . $return . '</ul>' : $return;
$msg ['info'] = $return;

if ($is_reply && $is_replied) {
    $msg ['is_refresh'] = '1';
}
inlojv_msg ( $msg, true );
die ();
comments_func.php
<?php

// 获取文章评论数
function inlojv_get_comment_count($post_id, $type = null) {
    global $wpdb;
    $sql = "SELECT count(comment_ID) FROM {$wpdb->comments}
                WHERE comment_type = '{$type}'
                AND comment_approved = 1
                AND comment_post_ID = {$post_id}";
    $res = $wpdb->get_var ( $sql );
    return empty ( $res ) ? 0 : $res;
}

// 获取当前用户
function inlojv_get_current_user() {
    global $current_user;
    if (! is_user_logged_in ()) {
        $user = wp_get_current_commenter ();
        if (! empty ( $user ['comment_author'] )) {
            // PHP5.4以上因为对象还没创建会报错,所以声明个数组再强制转为对象
            $current_user = array ();
            $current_user = ( object ) $current_user;
            $current_user->display_name = $user ['comment_author'];
            $current_user->user_email = $user ['comment_author_email'];
            $current_user->user_url = $user ['comment_author_url'];
        } else {
            return false;
        }
    }
    return $current_user;
}

//评论表情列表
function inlojv_smilies() {
    smilies_init ();
    global $wpsmiliestrans;
    $smilies = array_unique ( $wpsmiliestrans );
    $link = '';
    foreach ( $smilies as $key => $smile ) {
        $file = inlojv_costom_smilies ( '', $smile );
        $img .= '<img src="' . $file . '" data-key="' . $key . '" class="face" />&nbsp;';
    }
    echo $img;
}

// 评论模块
function inlojv_get_comment_list($comment, $args, $depth) {
    $GLOBALS ['comment'] = $comment;
    if ($comment->comment_type == '') {
        $avatar = get_avatar ( $comment->comment_author_email, 50 );
        $author = $comment->comment_author;
        $author_link = empty ( $comment->comment_author_url ) ? null : ' href="' . $comment->comment_author_url . '"';
        $admin_avatar = $comment->user_id == 1 ? ' admin-avatar' : null;
        $admin_class = $comment->user_id == 1 ? 'author-admin' : '';
        $comm_class = comment_class ( $admin_class, null, null, false );
        $comment_id = $comment->comment_ID;
        $comment_approved = $comment->comment_approved == 0 ? '<div class="comment-moderation">你的评论需要审核通过后才会生效</div>' : null;
        $content_text = apply_filters ( 'comment_text', $comment->comment_content );
        $time = get_comment_time ( 'n月j日 H:i' );
        $is_admin = $comment->user_id == 1 ? ' admin' : null;
        $reply = get_comment_reply_link ( array_merge ( $args, array (
                'reply_text' => '回复',
                'depth' => $depth,
                'max_depth' => $args ['max_depth'] 
        ) ) );
        
        echo <<<EOF
<li $comm_class id="comment-{$comment_id}">
    <div class="comment-avatar{$admin_avatar}">
        {$avatar}
        <a title="{$author}" rel="nofollow" target="_blank" class="comment-author-url"{$author_link}>{$author}</a>
    </div>
    <div class="comment-container{$is_admin}">
        <div class="comment-connent">{$content_text}{$comment_approved}</div>
        <div class="comment-info"><span>{$time}</span>{$reply}<div class="clr"></div></div>
        <div class="comment-tr"></div>
    </div>
EOF;
    }
}

// pingback模块
function inlojv_get_pings_list($comment, $args, $depth) {
    $GLOBALS ['comment'] = $comment;
    if ($comment->comment_type == 'pingback') {
        global $post;
        $comm_class = comment_class ( '', null, null, false );
        $comment_id = get_comment_ID ();
        $time = get_comment_time ( 'Y-n-j' );
        $content_text = get_comment_text ();
        $comment_autohr = $comment->comment_author;
        $author_url = $comment->comment_author_url;
        echo <<<EOF
<li $comm_class id="comment-{$comment_id}">
    <div class="comment-avatar">{$time}</div>
    <div class="comment-container">
        <div class="comment-connent"><a href="{$author_url}" target="_blank">{$comment_autohr}</a></div>
        <div class="comment-info">{$content_text}</div>
        <div class="comment-tr"></div>
    </div>
</li>
EOF;
    }
}

// 退出登录跳转
    add_filter ( 'logout_url', 'inlojv_logout_to_home' );
    
// 退出当前用户
    add_filter ( 'wp_logout', 'inlojv_logout' );

// 退出时清理当前用户cookie
function inlojv_logout() {
    setcookie ( 'comment_author_' . COOKIEHASH, '', - 1 );
    setcookie ( 'comment_author_email_' . COOKIEHASH, '', - 1 );
    setcookie ( 'comment_author_url_' . COOKIEHASH, '', - 1 );
}    

// 退出跳转
function inlojv_logout_to_home($logout_url) {
    return $logout_url . '&amp;redirect_to=' . $_SERVER ['REQUEST_URI'];
}

// 评论回复邮件通知
add_action ( 'comment_post', 'inlo_reply_mail_notify' );
function inlo_reply_mail_notify($comment_id) {
    $comment = get_comment ( $comment_id );
    $parent_id = $comment->comment_parent;
    if (! empty ( $_POST ['reply_mail_notify'] ) && $_POST ['reply_mail_notify'] == 'Y') {
        add_comment_meta ( $comment_id, 'reply_mail_notify', 'Y' );
    }
    $post_title = get_the_title ( $comment->comment_post_ID );
    $post_link = get_permalink ( $comment->comment_post_ID );
    $comment_link = get_comment_link ( $comment->comment_parent );
    $blog_name = get_option ( 'blogname' );
    $charset = get_option ( 'blog_charset' );
    $from_email = 'no-reply@' . preg_replace ( '/(.*\.)(.*\.\w+)/', '${2}', $_SERVER ['HTTP_HOST'] );
    $from = "From: \"" . $blog_name . "\" <{$from_email}>";
    $headers = "{$from}\nContent-Type: text/html; charset=" . $charset . "\n";
    set_time_limit ( 0 );
    if (! empty ( $parent_id )) {
        $parent_comment = get_comment ( $parent_id );
        $is_mail_notify = get_comment_meta ( $parent_comment->comment_ID, 'reply_mail_notify', true );
        if ($is_mail_notify ['reply_mail_notify'] == 'Y' && $comment->comment_approved == '1') {
            $to_email = trim ( $parent_comment->comment_author_email );
            $subject = '你在[' . $blog_name . ']上的留言有了新的回复';
            $message = '<div style="width:800px;padding:10px 20px;font-family: 微软雅黑;color: #777;background-color: #fafafa;border: 1px solid #e3e3e3;border-top: 4px solid #1e8cbe;">';
            $message .= '<p style="padding-bottom: 10px;border-bottom: 1px solid #E3E3E3;font-style: oblique;">嗨,' . $parent_comment->comment_author . ',你在<a href="' . $post_link . '" style="text-decoration: underline;color: #278DBC;">《' . $post_title . '》</a>中的评论有了回复</p>';
            $message .= '<p style="padding: 10px;color:#444;"><span style="display: block;padding-bottom: 15px;color: #aaa;">' . $comment->comment_author . '给你的回复:</span>“' . $comment->comment_content . '”</p>';
            $message .= '<p style="border-top: 2px solid #20A3CC;padding: 10px;"><span style="color: #aaa;padding-bottom: 15px;display: block;">你的评论:</span>“' . $parent_comment->comment_content . '”</p>';
            $message .= '<p><a href="' . $comment_link . '" style="font-style: oblique;color: #278DBC;text-decoration: underline;">查看详细</a></p><p style="color: #f00;font-size: 12px;">PS:此邮件由系统自动发送,请勿回复!</p>';
            $message .= '<p><a style="font-size: 12px;" title="前往首页" href="' . home_url () . '">' . $blog_name . '</a></p></div>';
            @wp_mail ( $to_email, $subject, $message, $headers );
        }
    }
    if (inlo_options ( 'is_email_msg' ) == 'Y') {
        $to_email = get_bloginfo ( 'admin_email' );
        $subject = $blog_name . '上有了新的评论';
        $message = '<div style="width:800px;padding:10px 20px;font-family: 微软雅黑;color: #777;background-color: #fafafa;border: 1px solid #e3e3e3;border-top: 4px solid #1e8cbe;">';
        $message .= '<p style="padding-bottom: 10px;border-bottom: 1px solid #E3E3E3;font-style: oblique;"><a href="' . $post_link . '" style="text-decoration: none;color: #278DBC;">《' . $post_title . '》</a>有新的评论</p>';
        $message .= '<p style="padding: 10px;color:#444;"><span style="display: block;padding-bottom: 15px;color: #aaa;">' . $comment->comment_author . '的评论:</span>“' . $comment->comment_content . '”</p>';
        $message .= '<p><a href="' . $comment_link . '" style="font-style: oblique;color: #278DBC;text-decoration: underline;">查看详细</a></p>';
        $message .= '</div>';
        @wp_mail ( $to_email, $subject, $message, $headers );
    }
    return $comment_id;
}

// 过滤垃圾评论
add_filter ( 'preprocess_comment', 'inlojv_nospam' );
function inlojv_nospam($comments) {
    if (empty ( $comments ['comment_type'] )) { //虚拟验证码填写
        // 下面用$_POST变量收集表单中名为no_spam的值,所以下面加入form表单内的input标签内的name=no_spam,而且input不能放在form之外
        if (! is_admin () && (empty ( $_POST ['no_spam'] ) || $_POST ['no_spam'] != 'inlojv')) {                                         //判断填入值是否为空或不为inlojv,下面ajax用val方法填入inlojv,因为垃圾评论不会真正打开页面,所以下面用val方法填入inlojv.
        wp_die ( 'No Spam !!' );
        }
    } else {
        if ($comments ['comment_type'] == 'trackback') {
            // 防traceback垃圾评论
            $url_count = array ();
            preg_match_all ( '/<a|\[url\]*/', $comments ['comment_content'], $url_count );// 正则匹配后将值放入数组变量$url_count中
            $pos = strpos ( $comments ['comment_content'], '<strong>' );
            if (($pos !== false && $pos == '0') || (isset ( $url_count [0] ) && count ( $url_count [0] ) > 3)) {
                wp_die ( 'No Spam !!' );
            }
        }
    }
    return $comments;
}
?>
JS控制
// ajax评论 ————— 需要jQuery库支持 1.8.3 —————————————————————————————————————————————————

// 提交评论时的文字提示
function comment_ajx_msg(info, status) {
    $('#reply-submit-msg').remove();
    var msg = '<div id="reply-submit-msg"><span class="'+status+'">'+info+'</span></div>';
    $('.comment-form-submit').append(msg);
    $('#reply-submit-msg').slideDown();
    setTimeout(function() {
        $('#reply-submit-msg').slideUp('normal', function() {
            $(this).remove();
        });
    }, 5000);
}

// 跳转锚点
function body_am(id) {
    id = isNaN (id) ? $('#'+id).offset().top : id;
    $("body,html").animate( {scrollTop: id}, 500 );
    return false;
}

// 提交评论前验证
function check_submit() {
    $.ajax({
        url: '/wp-content/themes/inlodz/ajax-comment.php', // 修改为相应的主题路径
        dataType: 'json',
        data : $('#reply-from').serialize(),
        type: 'POST',
        timeout: 15000,
        beforeSend: function() {
            comment_ajx_msg('评论提交中','send');
        },
        error: function(request) {
            var err = request.responseText;
            err = err != undefined ? err.match(/<p>(.*)<\/p>/)[1] : '服务器响应超时,请重新提交';
            comment_ajx_msg(err,'error');
        },
        success: function(data) {
            if(data.status == 1) {
                // 如果当前文章没有评论,把沙发样式删除
                $('.disabled-comment').remove();
                // 评论后清除textarea区的文字
                $('.comment-form textarea').val('');
                // 再将评论列表显示出来
                $('.comment-list').fadeIn('fast');
                // 如果是回复评论
                if (data.info.indexOf('<ul') == 0) {
                    var reply_li_id = $('#reply_li_id').val();
                    $('#'+reply_li_id).append(data.info);
                    body_am(reply_li_id);
                } else {
                    // 否则直接追加到评论列表
                    var comment_count = $('#comment_count').text();
                    $('#comment_count').text(Number(comment_count) + 1); // 上方评论计数+1
                    //将新评论添加到列表ul的子元素上
                    $(data.info).prependTo($('.comment-list').eq(0).children('ul'));
                    body_am('comment_count');
                }
                // 评论提示隐藏
                $('#reply-submit-msg').slideUp();
            } else {
                // 评论失败
                comment_ajx_msg(data.info,'error');
            }
        },
        complete: function() {
            $('#reply-form').fadeOut('fast');
            $('#reply-submit').removeAttr('disabled');
        }
    });
    return false;
}

// 提交评论
$('#reply-submit').live('click',
    function(){
    $('#no_spam').val('inlojv'); // 过滤垃圾评论验证码
    check_submit();
    return false;
});
// 回复按钮
$('.comment-reply-link').live('click',
function() {
    var parent_id = $(this).attr('href').match(/(\d+)#/);
    $('#comment_parent').val(parent_id[1]);
    var parents = $(this).parents('li');
    var name = parents.children('.comment-avatar').find('a').html();
    var content = parents.find('.comment-connent').html();
    $('#reply_li_id').val($(parents).attr('id'));
    $('#reply-name').html(name);
    $('#reply-content').html(content);
    $('#reply-form').fadeIn('fast');
    $('#reply-text').html($(this).text());
    body_am('reply-form');
    return false;
});
// 取消回复
$('#reply-close').live('click',
function() {
    $('#comment_parent').val(0);
    $('#reply_li_id').val('');
    $('#reply-name').html('');
    $('#reply-form').fadeOut('fast');
});
// 评论、引用切换
$(".comment-tab a").live('click', 
function() {
    var ul_index = $(this).index();
    $('#post-comment-list .comment-list').eq(ul_index).fadeIn('fast').siblings('.comment-list').hide();
    $(this).addClass('current').siblings().removeClass('current');
});
// 邮件回复
$("#mail_notify_box").live('click', 
function() {
    if( $(this).hasClass('mail_on') ){
        $(this).removeClass('mail_on');
        $('#reply_mail_notify').val('');
    } else {
        $(this).addClass('mail_on');
        $('#reply_mail_notify').val('Y');
    }
});

// 当前用户头像悬停
$('.comment-form-submit .avatar,#reply-current-user').mouseover(function(){        
    $('#reply-current-user').fadeIn('fast');
    clearTimeout(cu_timeout);
});
$('.comment-form-submit .avatar,#reply-current-user').mouseleave(function(){
    cu_timeout = setTimeout(function(){$('#reply-current-user').fadeOut('out');},300);
});
CSS
/* ajax-comt*/
/* 评论区域 */
#post-comment-list { zoom:1; border:1px solid #e3e3e3; background-color: #f9f9f9; }
#post-comment-list .comment-tab { margin-bottom: 10px;  padding-left: 15px; line-height: 25px; background-color: #EEE; padding-bottom: 10px; border-top:2px solid #428bca; }
#post-comment-list .comment-tab a { color: #777; display: inline-block;padding: 6px 7px 4px; }
#post-comment-list .comment-tab .current { border-bottom: 2px solid #72c9e4; padding-bottom: 2px; }
#post-comment-list .disabled-comment { margin: 0 auto -50px; width: 300px; }
#post-comment-list .disabled-comment .cd-icon { color: #DEDEDE; height: 27px; display: block; line-height: 27px; font-weight: bold; font-size: 16px; margin-left: 30px; padding-left: 40px; }
#post-comment-list .disabled-comment .cm-stop { background: url("img/comt/inlojv_icon.png") no-repeat 0 -235px; }
#post-comment-list .disabled-comment .cm-smile { background: url("img/comt/inlojv_icon.png") no-repeat 0 -272px; }
#post-comment-list .comment-list { margin: 50px 0 30px; }
#post-comment-list ul li { background: url('img/comt/inlojv_comment_li_bg.png') 100px 0px repeat-y; position: relative; padding: 10px 0 15px 150px; margin-right: 20px; }
#post-comment-list ul li:hover { background: url('img/comt/inlojv_comment_li_bg_on.png') 100px 0px repeat-y; }
#post-comment-list ul .comment-avatar { position: absolute; left: 10px; top: 10px; margin-left: 8px; text-align: center; width: 70px; }
#post-comment-list ul .comment-avatar a { color: #999; word-break: break-all; position: relative; overflow: hidden; display: block; }
#post-comment-list ul .comment-avatar a:hover { color: #278DBC; }
#post-comment-list ul .comment-avatar img { border: #dedede 1px solid; background-color: #fff; padding: 4px; margin-bottom: 3px; width: 50px; height: 50px; }
#post-comment-list .comment-container { border: #e3e3e3 1px solid; background-color: #fff; position: relative; padding: 5px; margin-left: -10px; }
#post-comment-list .comment-container .comment-connent { border-bottom: #eee 1px dotted; margin: 10px; font-size: 14px; line-height: 22px; padding-bottom: 10px; word-wrap: break-word; }
#post-comment-list .comment-container .comment-moderation { color: #999; font-style: oblique; }
#post-comment-list .comment-container .comment-info { padding: 0 10px 5px; color: #999; }
#post-comment-list .comment-tr { width: 10px; height: 15px; position: absolute; background: url('img/comt/inlojv_comment_tr.png') no-repeat; top: 25px; left: -10px; }
#post-comment-list .comment-container span { float: left; display: inline-block; }
#post-comment-list .comment-container .comment-reply-link { float: right; display: inline-block; color: #999; }
#post-comment-list .children .author-admin { margin: 0 60px 0 -60px; background: none; }
#post-comment-list ul .children li .admin-avatar { left: 100%; }
#post-comment-list ul .children li .admin .comment-tr { background: url('img/comt/inlojv_comment_tr_r.png') no-repeat; left: 100%; }
#post-comment-list .comment-list .children { margin: 20px 0 0 -90px; }
#post-comment-list ul .children li { margin-right: 10px; background: none; }
#post-comment-list ul .children .comment-avatar { left: 60px; }
#post-comment-list ul .children .avatar { width: 30px; height: 30px; }
#comments_paginate{text-align:right;margin:20px}
#comments_paginate a,#comments_paginate span{padding:2px 8px;color:#666;display:inline-block;background-color:#eee}
#comments_paginate a:hover,#comments_paginate .current{background-color:#428BCA;color:#fff}
/*评论框*/
#post-comment-list .comment-form-title { color: #BBB; font-size: 18px; font-weight: bold; padding: 20px; }
#post-comment-list .comment-form { position: relative; margin: 0 20px 0 22px; }
#post-comment-list .comment-form textarea { width: 100%; height: 120px; resize: none; background-color: #fff; border: none; position: relative; font-size: 12px; color: #555; }
#post-comment-list .comment-form .comment-input { height: 30px; border: 1px solid #E3E3E3; border-top: none; position: relative; z-index: 999; }
#post-comment-list .comment-textarea { padding: 10px 10px ; border: 1px solid #e3e3e3; background-color: #fff; }
#post-comment-list .comment-form .comment-input .cfp { overflow: hidden; float: left; height: 29px; width: 32%; background-color: #FAFAFA; position: relative; }
#post-comment-list .comment-form .comment-input input { height: 30px; width: 80%; line-height: 30px; background-color: transparent; border: none; color: #888; font-size: 12px; }
#post-comment-list .comment-form .cf-m { border-left: 1px solid #e3e3e3; border-right: 1px solid #e3e3e3; }
#post-comment-list .comment-form .comment-input span { height: 17px; width: 16px; display: inline-block; vertical-align: top; margin: 7px 10px 0; }
#post-comment-list .comment-form .cf-realname { background: url("img/comt/inlojv_icon.png") 0 -155px no-repeat; }
#post-comment-list .comment-form .cf-email { background: url("img/comt/inlojv_icon.png") 0 -181px no-repeat; }
#post-comment-list .comment-form .cf-url { background: url("img/comt/inlojv_icon.png") 0 -208px no-repeat; }
#editor_tools { border-bottom: 1px solid #bbb; height: 25px; position: absolute; z-index: 9999; top: 1px; left: 1px; }
#editor_tools a { color: #888; border-right: 1px solid #bbb; background-color: #f5f5f5; height: 25px; line-height: 25px; padding: 0 10px 0 25px; display: inline-block; }
#editor_tools a:hover { color: #666; background-color: #fafafa; }
#editor_tools .smilies { background: url('img/comt/inlojv_editor_tools.png') no-repeat 5px 6px; }
#editor_tools .url{ background: url('img/comt/inlojv_editor_tools.png') no-repeat 5px -14px; }
#editor_tools .img { background: url('img/comt/inlojv_editor_tools.png') no-repeat 5px -32px; }
#editor_tools .tooltip-inner { max-width: 700px; text-align: left; }
#editor_tools .face { cursor: pointer; }
/*评论按钮提交区*/
.hide { display: none; }
.clr{clear:both}
.comment-form-submit { padding: 20px 18px; position: relative; text-align: right; z-index:9}
.comment-form-submit .comment-submit-button { cursor: pointer; letter-spacing: 6px; font-weight: bold; font-size: 14px; padding: 10px 9px 10px 15px; color: #FFF; border: none; background-color: #72C9E4; }
.comment-form-submit .comment-submit-button:hover { background-color: #3DABCE; }
.comment-form-submit .submit_notice { width: 130px; }
.comment-form-submit .submit_notice div { position: relative; margin-bottom: 5px; }
.comment-form-submit .submit_notice input { position: relative; top: 2px; }
.comment-form-submit .mail_notify_box { height: 12px; width: 16px; cursor: help; margin-right: 20px; display: inline-block; background: url('img/comt/inlojv_icon.png') 0 -417px no-repeat; }
.comment-form-submit .mail_on { background: url('img/comt/inlojv_icon.png') 0 -437px no-repeat; }
.comment-form-submit .avatar { width: 32px; height: 32px; float: left; padding: 2px; margin-left: 5px; box-shadow: -1px 0 2px #ebebeb; border: 1px solid #dedede; z-index:9}
#reply-submit-msg { display:none; margin-top: 10px; }
#reply-submit-msg span { display: inline-block; padding-left: 25px; }
#reply-submit-msg .send { color: #777; height: 16px; line-height: 16px; background: url('/wp-includes/images/wpspin.gif') no-repeat; }
#reply-submit-msg .error { color: #F00; height: 20px; line-height: 20px; background: url('/wp-includes/images/xit-2x.gif') -20px 0 no-repeat; }
#reply-current-user  { top: 16px; left: 60px; display: none; }
#reply-current-user a { display: block; padding-top: 5px; font-size: 12px; color: #888; }
#post-comment-list .pings-list { display: none; }
#post-comment-list .pings-list .comment-avatar { color: #999; top: 32px; }
#post-comment-list .pings-list .comment-connent a { color: #278DBC; }
#reply-form { display: none; margin: 20px 0; position: relative; }
#reply-form .popover { margin-left: 25px; width: 90%; max-width: 780px; position: relative; display: block; }
#reply-name { color: #278DBC; }
#reply-content { line-height: 22px; }
#reply-close { position: absolute; right: 15px; color: #999; }
#reply-close:hover { color: #666; }
/*评论工具bootstarp*/
.clearfix {*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
.clearfix:after {clear:both;}
.hide-text {font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
.input-block-level {display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
.tooltip {position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
.tooltip.top {margin-top:-3px;padding:5px 0;}
.tooltip.right {margin-left:3px;padding:0 5px;}
.tooltip.bottom {margin-top:3px;padding:5px 0;}
.tooltip.left {margin-left:-3px;padding:0 5px;}
.tooltip-inner {max-width:200px;padding:8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.tooltip-arrow {position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
.tooltip.top .tooltip-arrow {bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
.tooltip.right .tooltip-arrow {top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
.tooltip.left .tooltip-arrow {top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
.tooltip.bottom .tooltip-arrow {top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
.popover {position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);white-space:normal;}.popover.top{margin-top:-10px;}
.popover.right {margin-left:10px;}
.popover.bottom {margin-top:10px;}
.popover.left {margin-left:-10px;}
.popover-title {margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}.popover-title:empty{display:none;}
.popover-content {padding:9px 14px;}
.popover .arrow,.popover .arrow:after {position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;}
.popover .arrow {border-width:11px;}
.popover .arrow:after {border-width:10px;content:"";}
.popover.top .arrow {left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0, 0, 0, 0.25);bottom:-11px;}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff;}
.popover.right .arrow {top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0, 0, 0, 0.25);}.popover.right .arrow:after{left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff;}
.popover.bottom .arrow {left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0, 0, 0, 0.25);top:-11px;}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff;}
.popover.left .arrow {top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0, 0, 0, 0.25);}.popover.left .arrow:after{right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px;}
/*响应式*/
@media screen and (max-width:780px){
#post-comment-list ul .comment-avatar img, 
#post-comment-list .comment-tr {display:none}
#post-comment-list ul li { background: none; padding: 10px 0 15px 15px; margin-right: 5px; }
#post-comment-list ul li:hover { background: none; }
#post-comment-list ul .comment-avatar { position: static; margin-left: 0; width: auto; text-align: left; }
#post-comment-list ul .comment-avatar a,#post-comment-list .pings-list .comment-avatar { padding: 3px 6px; background-color: #169FE6; color: #FFF; display: inline-block; overflow: visible; }
#post-comment-list ul .comment-avatar a:hover { color: #fff; }
#post-comment-list .comment-list .children { margin: 20px 0 0 0; }
#post-comment-list .children .author-admin { margin: 0; }
#post-comment-list .comment-form .comment-input input { width: 60%; }
}

最后还有相关图片图标,所有文件我打包好了:
下载地址 提取码:ed12