一聚教程网:一个值得你收藏的教程网站

热门教程

WordPress博客实现Ajax评论分页教程

时间:2022-06-25 18:49:06 编辑:袖梨 来源:一聚教程网


下面详细介绍一下非插件实现 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 标签下加入以下代码,这样分页的页面便会禁止被搜索引擎收录,防止内容重复。

 

    if( function_exists('get_query_var') ) {
        $cpage = intval(get_query_var('cpage'));
        $commentPage = intval(get_query_var('comment-page'));
    }
    if( !empty($cpage) || !empty($commentPage) ) {
        echo '';
        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;text-align:center;margin-bottom:20px;}
参考:

热门栏目