折腾无极限
不曾长大

WordPress Ajax评论分页

博客每次评论翻页时,文章里的图片都要重新加载一遍,一是影响体验速度,二是心疼流量。本着节省的原则,决定使评论翻页不刷新页面。
实现 Ajax 评论分页主要有两种方法:一是使用WordPress插件;二是自己修改代码(非插件)。哥选择了第二种。

下面详细介绍一下非插件实现 Ajax 评论分页的实现过程。

加载 jQuery 库

加载jQuery库,一般主题都会加载jQuery库的。如果你的没有,那就在主题的header.php文件的(/head)(注意把()换成<>)前面添加以下代码:

开启 WordPress 评论分页

打开 WordPress 后台 – 设置 – 讨论,在“其他评论设置”中勾选分页显示评论,设置一下评论数目,这里的评论数目仅计算主评论,回复评论不作计算。我填了20,一是我的博文差不多这个数以内,而太多了影响整个文章的长度。

在后台开启评论分页后,在 comments.php 中需要添加分页导航的地方加入以下代码(如主题中有类似代码则无须再添加,另外代码中的 nav 标签为 HTML5 标签,若主题没有使用 HTML5 则有 div 代替即可。)


 

评论分页的 SEO

从 SEO 的角度看,评论分页会造成重复内容(分页的内容正文都一样,并且 keywords 和 description 也相同),这样对于评论很多的博客很容易因为重复内容太多而降权,因此需要在 SEO 方面作出一些处理,最为方便有效的方法是使用 meta 标签。在你的 header.php 原有的 meta 标签下加入以下代码,这样分页的页面便会禁止被搜索引擎收录,防止内容重复。

';
        echo "\n";
    }
}
?>

Ajax 评论

根据上文所述,现在主题中已经有评论分页了,要做到 Ajax 的评论分页,只需 JavaScript 的配合,不过在这之前首先要在评论列表前加入一个元素,用于在显示新一页评论列表时表示列表正在加载。假设主题模板 comments.php 的评论模块结构如下:

 
Loading...

在你的主题 js 文件中加入以下 js 代码实现评论分页。

 
// 评论分页
jQuery(document).ready(function($) {
    $body = (window.opera) ? (document.compatMode == "CSS1Compat" ? $('html') : $('body')) : $('html,body');//commentnav ajax
    $(document).on('click', '.commentnav a', function(e) {
        e.preventDefault();
        $.ajax({
            type: "GET",
            url: $(this).attr('href'),
            beforeSend: function() {
                $('.commentnav').remove();
                $('.commentlist').remove();
                $('.comments-loading').slideDown();
            },
            dataType: "html",
            success: function(out) {
                result = $(out).find('.commentlist');
                nextlink = $(out).find('.commentnav');
                $('.comments-loading').slideUp(550);
                $('.comments-loading').after(result.fadeIn(800));
                $('.commentlist').after(nextlink);

            }
        });
    });    
});

加载条的 css (本博 css ,仅供参考)

.comments-loading{display:none;background:none!important;height:50px;text-align:center;margin-bottom:20px;}

参考:
WordPress Ajax 评论分页

赞(0) 打赏
未经允许不得转载:子痕的博客 » WordPress Ajax评论分页

评论 32

  1. #-19

    aJax评论翻页效果还是蛮好的,测试成功 😎

    子痕11年前 (2013-10-17)回复
  2. #-18

    省流量的同时还增加了PV吧。

    社新社11年前 (2013-10-18)回复
  3. #-17

    好吧, 对于我这种无名小站,流量倒不怎么珍惜,反正用不掉

    不过你这个确实实用~

    Betty11年前 (2013-10-18)回复
    • @Betty : 用这个用户体验能增加不少。总体来说,利大于弊的。

      子痕11年前 (2013-10-19)回复
  4. #-16

    好久没有折腾这种小技巧了~

    土木坛子11年前 (2013-10-18)回复
  5. #-15

    我想全站ajex都想疯了,无奈代码盲,怎么折腾都搞不定,

    有点蓝11年前 (2013-10-19)回复
    • @有点蓝 : 我建议还是一点点的弄。或者去找aJax的模板,然后慢慢修改。css我熟悉一点,js基本不懂,所以只有慢慢的改一点,试验一下。

      子痕11年前 (2013-10-19)回复
  6. #-14

    看着代码量不多,可是对comment_form函数的评论模板就不起作用了,是吗?

    有点蓝11年前 (2013-10-19)回复
    • @有点蓝 : 基本不影响的。

      子痕11年前 (2013-10-19)回复
      • @子痕 : 是吗? 那我得试试了,我就是comment_form函数的评论模板,很多效果比如添加评论表情都比普通自定义的麻烦。

        有点蓝11年前 (2013-10-19)回复
        • @有点蓝 : 改之前记得要备份。我就是往里面添加了这些东西,并没有改动什么。

          子痕11年前 (2013-10-19)
    • @有点蓝 : 重新推荐你一个真正的aJax评论分页 http://fatesinger.com/3302.html

      子痕11年前 (2013-10-19)回复
      • @子痕 : 大发那里跟ajex有关的我都看了,结果,都看不懂……超难折腾的。

        有点蓝11年前 (2013-10-20)回复
        • @有点蓝 : 大发有出主题,可以先研究他主题。

          子痕11年前 (2013-10-20)
        • @子痕 :
          对小白来说,看教程和扒主题都差不多的……话说,大发的主题里header上有个搜索按钮,点击弹出搜索框那个。我感觉已经找到了所有代码了,头部一个a链接指向js,一个js文件加调用,footer里一个搜索框,然后一些css,可放到我主题上就是不起作用。真没辙。

          有点蓝11年前 (2013-10-21)
        • @有点蓝 : 那就直接请教大发,大发人很不错的。

          子痕11年前 (2013-10-21)
  7. #-13

    前不久才折腾过一个主题。现在不想搞了、

    沃默博客11年前 (2013-10-19)回复
    • @沃默博客 : 搞一个自己喜欢的,然后一直用着就好了。这个主题我还准备修改成响应式的。

      子痕11年前 (2013-10-19)回复
  8. #-12

    大发写了篇文章, 是真ajax, 这个其实还是请求了整个页面

    牧风11年前 (2013-10-19)回复
    • @牧风 : 终于在他那翻到了,这下又要重新折腾了 😥

      子痕11年前 (2013-10-19)回复
    • @牧风 : 记得最开始接触ajax的时候也是从整个页面提取一部分,最后还是从winsky那里找到的方法。

      咚门11年前 (2013-10-30)回复
  9. #-11

    ajax请求错误处理不好,会导致用户体验很糟糕的。。。

    Aivier11年前 (2013-10-19)回复
    • @Aivier : 是的,我中间出错过一次,导致评论直接不显示。。。

      子痕11年前 (2013-10-19)回复
  10. #-10

    大发的那个ajax那个不错,就是比较复杂~~还没搞懂~~现在这个翻页后发现浏览量增加,类似于在加载页中选取显示~

    夜枫11年前 (2013-10-19)回复
  11. #-9

    不会弄,唉~~

    木篱笆11年前 (2013-10-21)回复
  12. #-8

    我加上 就去掉了 ,JS 太多

    新蜂网11年前 (2013-10-22)回复
  13. #-7

    不错,来学习学习了。

    海涛11年前 (2013-10-22)回复
  14. #-6

    这主题你修改过宽度吧,原主题没这么宽的

    那时年少11年前 (2013-10-23)回复
    • @那时年少 : 是的,我都用的宽屏,之前宽度嫌窄。下一步准备换成响应式的。

      子痕11年前 (2013-10-23)回复
  15. #-5

    看着很不错哦>>http://www.schydl.com

    heyuan10年前 (2014-01-20)回复

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏