WordPress评论修改 AJAX版“您最近的评论”

为何用 AJAX 获取评论?
1. 每个访客、每个页面都要查询一次数据,MySQL说它受不了 ,它爹(主机)说你肯“受”我也坚持不了
2. 不是每个访客都会去查询自己的评论,其实真的很少……

然后写好后,就有朋友不断说要共享代码,我当时一直忙(其实还要加上“懒”),没时间去整理代码。这两天比较有空,加上“SEV”童鞋源源不断的问题,就花时间整理一下放出,喜欢折腾的朋友自由发挥。

先说明:
1. 代码我随便写的,所以……
2. 懒得加各种注释,自己Google、百毒
3. 一般照搬就会工作的……

那么下面开始……

0. 前提

主题已经加载 jQuery 库,如果没有,直接把下面代码扔到主题的 functions.php 的 里面就会自动加载 WordPress 自带的 jQuery 库了

////////Get jQuery
if (!is_admin()) {
function my_scripts_method() {
wp_enqueue_script('jquery');
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
}
1. HTML,主要根据 Cookie 获取访客的身份(邮箱地址),然后随便放在一个标签里给 JS 获取。

在主题的 footer.php 的 前加入如下 HTML 代码

exists()) { //这是博主登陆情况
echo '您好, '. $user->user_login .', 点击这里可以查看您最近的评论。';
} else { //访客有评论过
if($_COOKIE["comment_author_" . COOKIEHASH]!=""){
echo '您好, ' , $_COOKIE["comment_author_" . COOKIEHASH] , ', 点击这里可以查看您最近的评论。';
} else {
echo 'Welcome! o(∩_∩)o';
}
} ?>

X

2. AJAX 获取访客评论函数:把下面的“根据访客 cookie 里面的邮箱地址获取某访客的最近12条评论”的函数放到 functions.php(稍微注意蓝色字)

//////// Ajax: ajax_guest_comments by zwwooooo | zww.me
function ajax_guest_comments(){
if( isset($_GET['action'])&& $_GET['action'] == 'ajax_guest_comments' ){
nocache_headers();

$gc_userEmail = isset($_GET['gc_userEmail']) ? $_GET['gc_userEmail'] : null;
?>

    'approve',
    'number' => 12, //获取的评论数
    'post_tyle' => 'post',
    'author_email' => $gc_userEmail
    );
    $comments = get_comments($arg);
    $home_url=home_url();
    if ( !empty($comments) ) {
    foreach ($comments as $comment) {
    $comment_link=get_comment_link( $comment->comment_ID, array('type' => 'all'));
    $announcement .= '

  • ' . get_comment_date('Y/m/d H:i',$comment->comment_ID) . ' '. convert_smilies(strip_tags($comment->comment_content)) . '
  • ';
    }
    }
    if ( empty($announcement) ) $announcement = '

  • 我发现您还没评论过 ^_^
  • ';
    echo $announcement;
    ?>

前插入如下 jQuery 代码


4. CSS:参考下吧

/* ajax guest comments */
.guest_comments{position:relative;z-index:9999;position:fixed;bottom:0;right:30px;min-width:300px;max-width:450px;line-height:20px;background:#fff;border-radius:4px 4px 0 0;box-shadow:1px -2px 7px #777;}
.guest_info{padding:5px;}
.guest_info a{color:#f20;}
.guest_info a:hover{color:#3f6c18;}
#guest_comments_list{overflow-y:auto;display:none;max-height:450px;border-top:3px solid #999;}
#guest_comments_list li{overflow:hidden;list-style:none;line-height:20px;padding:0 5px;color:#777;background:#f2f2f2;border-top:1px solid #999;}
#guest_comments_list li span{margin-right:10px;font-weight:bold;color:#555;}
#guest_comments_list li:hover > span{color:#000;}
#guest_comments_list li a{color:#333;font-size:12px;}
#gc_close{display:none;position:absolute;top:3px;right:3px;width:24px;height:24px;line-height:24px;text-align:center;color:#a80000;font-weight:bold;background:#fff;}

weinxin
VPSKO.com
承接的项目主要包括WordPress博客主题、WordPress CMS主题、WordPress企业主题、WordPress外贸主题、WordPress淘宝客主题定制
VPSKO官方淘宝店
avatar
原创设计Wordpress企业精品主题自适应源代码完美后台已做SEO优化
WordPress 响应式网址导航主题 Hao123
原创设计Wordpress企业精品主题高端大气自适应网站源代码带SEO
Wordpress企业主题精选高端大气自适应网站源代码带后台手机版

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: