typecho博客评论添加异步加载和Ajax功能

请注意,本文编写于 377 天前,最后修改于 377 天前,其中某些信息可能已经过时。

使用前需要借助绛木子的评论增强插件,自己还没有自创的能力,所以借助的插件的功能。

修改functions.php

添加代码如下:

/**
 * 重写评论显示函数
 */
function threadedComments($comments, $options){
    $html = TeComment_Plugin::parseCommentHtml($comments, $options);
    
    $children = '';
    if ($comments->children) {
        ob_start();
        $comments->threadedComments();
        $children = ob_get_contents();
        ob_end_clean();
    }
    $html = str_replace('>{children}<','>'.$children.'<',$html);
    echo $html;
}
修改comments.php

下面是原来的代码(使用默认主题)

<?php $this->comments()->to($comments); ?>
    <?php if ($comments->have()): ?>
    <h3><?php $this->commentsNum(_t('暂无评论'), _t('仅有一条评论'), _t('已有 %d 条评论')); ?></h3>
    
    <?php $comments->listComments(); ?>

    <?php $comments->pageNav('&laquo; 前一页', '后一页 &raquo;'); ?>
    
    <?php endif; ?>

替换上面的代码

<?php if($this->options->plugin('TeComment')->commentAjaxLoad): ?>
    <div id="comment-ajax-list" data-cid="<?php $this->cid();?>" data-num="<?php $this->commentsNum();?>" data-comment-page="<?php echo $this->request->commentPage;?>"></div>
<?php else: ?>
    <?php $this->comments()->to($comments); ?>
    <?php if ($comments->have()): ?>
    <?php $comments->listComments(); ?>
    <?php $comments->pageNav('&laquo; 前一页', '后一页 &raquo;'); ?>
    <?php endif; ?>
<?php endif; ?>

comments.php找到

<?php $comments->cancelReply(); ?>

修改为

<?php echo '<a id="cancel-comment-reply-link" href="' . $this->permalink . '#' . $this->respondId . '" rel="nofollow"' . ($this->request->filter('int')->replyTo ? '' : ' style="display:none"') . ' onclick="return TypechoComment.cancelReply();">'._t('取消回复').'</a>'; ?>

这样就大功告成啦,如果你们也想添加的话可以访问:评论增加插件 (里面还有详细教程,相信看了都会)
我还对评论样式做了相应的修改,具体操作我也忘了,你们可以自行修改,应该没什么太大问题。
评论添加异步加载和Ajax功能后,就能减少一些服务器的压力,增加用户体验,提高速度。(好像没太大作用)

添加新评论

已有 6 条评论

[该评论已被自动折叠 | 点击展开]

buy cafergot

[该评论已被自动折叠 | 点击展开]

不想修改太多了,以后更新麻烦!!

[该评论已被自动折叠 | 点击展开]

只能是折腾一下 哈哈哈

senchun senchun 回复 @夏目贵志
0
[该评论已被自动折叠 | 点击展开]

被你发现了

[该评论已被自动折叠 | 点击展开]

不错哦!

senchun senchun 回复 @演员
0
[该评论已被自动折叠 | 点击展开]

还行还行