学习是为了提高技巧,而读书是为了提高素质

增加Paled/iNeo的评论嵌套支持

技术文档 7839浏览 0评论

Paled/iNeo在前台回复评论的时候是不支持嵌套的功能的,同样也会存在前台回复评论不能发送邮件的问题,具体的原因分析和解决办法已经在《前台回复评论不能发送邮件的解决方法》这篇文章进行了详细的讲解,那么本文主要是针对Paled/iNeo皮肤进行改造,解决上述的两个问题。

步骤如下:
1、在comments.php中添加comment_parent的隐藏项,用来传递相应的参数。这个需要用到comment_id_fields这个函数。其作用为

Generates two hidden inputs for the comment form to identify the comment_post_ID and comment_parent for threaded comments. This tag must be within the <form> section of comments.php. New since WordPress version 2.7.

在comments.php的form模块中增加这个函数,可以增加两个隐藏属性:comment_post_ID 和 comment_parent,这正是我们需要用到的。

<input name="submit" type="submit" id="cmt-submit" tabindex="5" value="<?php _e('Submit Comment','inove');?>" />后面增加下面这一句即可:

< ?php comment_id_fields(); ?>

2、改造JS函数,具体在js/script.js中:
(1)将reply函数进行改写,原函数为:

function reply(replyID,authorId, commentId, commentBox) {
        var author = document.getElementById(authorId).innerHTML;
        var insertStr = '<a href="#' + commentId + '">@' + author.replace(/\t|\n|\r\n/g, "") + ' </a> \n';
        appendReply(insertStr, commentBox)
    }

增加一个变量,用来传递comment_parent的实际值,改后的函数为:

function reply(replyID,authorId, commentId, commentBox) {
        var author = document.getElementById(authorId).innerHTML;
        var insertStr = '<a href="#' + commentId + '">@' + author.replace(/\t|\n|\r\n/g, "") + ' </a> \n';
        appendReply(insertStr, commentBox);
        $('#comment_parent').val(replyID)
    }

(2)修改调用函数,原来的调用函数为:reply('reviewer-' + commentId, 'comment-' + commentId, 'comment'),具体是在overComment函数中进行调用的,作用就是在每条评论后面增加一个Reply和一个Quote链接。
修改后的条用函数为:

reply(commentId,'reviewer-' + commentId, 'comment-' + commentId, 'comment')

这样在前台回复评论的时候就可以获取到parent_id的值,前台回复评论时不能发送邮件的问题也就可以解决了,同时还可以支持嵌套评论。至于嵌套评论的层数,你就要在后台进行相应的设置了,不然表格撑破了会比较难看滴。

转载请注明:自由的风 » 增加Paled/iNeo的评论嵌套支持

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (5)

  1. 你好 可以把改好的js发一份给我吗
    我打开js文件是一片混乱。。用搜索也找不到function reply啊。。

    shrimprex2011-11-16 11:48 回复