“WP后台直接回复评论:支持二级无限嵌套评论、@方式、邮件通知”是我上个星期就折腾好的功能,目前我和A.shun在用,非常方便。
我一直想要这功能,但一直木有高手去写,于是自己用蛋疼的 jQuery 实现……
前提:
【一定要】无限嵌套:完美的WordPress无限嵌套回复方法
【可选】要支持评论回复通知,那么参考:整理: WordPress 评论回复邮件通知代码
ps:好吧,前一篇我卖关子了,其实就这里用用而已……
步骤:
开始以前再次提醒:你的主题一定要支持无限嵌套评论!!!
1. 把下面蛋疼的 jQuery 代码存为 admin_reply.js,放在所用主题目录。或者直接点这里下载
WordPress 版本 >= 4.4(2017.03.08 Update)
(function ($, window) { $(document).ready(function(){ //////// for WordPress >= 4.4 //////// if ( $('#replycontent').length ){ var $replycontent = $('#replycontent'); $replycontent.attr('onkeydown','if(event.ctrlKey){if(event.keyCode==13){document.getElementById(\'replybtn\').click();return false}};'); $('#the-comment-list').on('click', '.vim-r', function(){ $replycontent.off('focus'); $('#replybtn').off('click') var $thiscomment = $(this).parent().parent().parent().parent(), haveParent = $thiscomment.find('td.comment .comment-author').next().is('a') ? 1 : '', parentID = haveParent == 1 ? $thiscomment.find('td.comment .comment-author').next().attr('href').split('#')[1].split('-')[1] : '', $submitted_on = $thiscomment.find('.submitted-on'), atid = '#' + $submitted_on.children('a:first').attr('href').split('#')[1], atname = $thiscomment.find('td.author').find('strong').text().replace(/^(\s|\xA0)+|(\s|\xA0)+$/g, ''), replyto = '<a href="' + atid + '">@' + atname + '</a>' + " "; $replycontent.val('').focus().attr('data-replyto',replyto).attr('data-parent-id',parentID); $('#replybtn').on('click', function(){ $replycontent.val($replycontent.attr('data-replyto') + $replycontent.val()); $replycontent.attr('data-replyto','').attr('data-parent-id',''); $('#replybtn').off('click'); }); $('#replysubmit .cancel').on('click', function(){ $replycontent.off('focus'); $('#replybtn').off('click'); }); }); }; }); })(jQuery, window);
WordPress 版本 < 4.4(Update: 2011.10.30 修正 @xxx 的链接——感谢axiu同志反馈)
jQuery(document).ready(function($){ //WP后台直接回复评论:支持二级无限嵌套评论、@方式、邮件通知 by zwwooooo $('.vim-r').click(function(){ var $submitted_on=$(this).parent().parent().parent().children('.submitted-on'); if ($submitted_on.children('a').length == 2) { var parentID=$submitted_on.find('a:last').attr('href').split('#')[1]; $('#replyrow').find('#comment_ID').attr('value',parentID); } var atid = '"#' + $submitted_on.children('a:first').attr('href').split('#')[1].split('-')[1] + '"'; var atname = $submitted_on.parent().prev('td.author').find('strong').text().replace(/^(\s|\xA0)+|(\s|\xA0)+$/g, ''); $("#replycontent").attr('value','<a href=' + atid + '>@' + atname + ' </a>\n').focus(); $("#replycontent").attr('onkeydown','if(event.ctrlKey){if(event.keyCode==13){document.getElementById(\'replybtn\').click();return false}};'); $('#replybtn').click(function(){ $("#replycontent").attr('onkeydown',''); }) }) });
2. 然后把下面这段加入到主题的 functions.php 里面去:
function admin_reply_admin_enqueue_scripts( $hook_suffix ) { wp_enqueue_script( 'admin-reply-js', get_template_directory_uri() . '/admin_reply.js', false, 'by-zwwooooo' ); } add_action( 'admin_print_styles', 'admin_reply_admin_enqueue_scripts' );
然后就没有然后了……
zww
赏
oooo
or
- 本文标题:WP后台直接回复评论:支持二级无限嵌套评论、@方式、邮件通知
- 本文链接:https://zww.me/archives/25538
- 发布时间:2011年10月29日 21:20
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
觉得要能把表情也加入进去就好了
@闲云野鹤
木有研究了,奶来完善一下吧
@zwwooooo
我来测试一下第三层回复
@盘龍
再进一步测试
总算弄好了,之前一直出不来结果,原来是路径弄错了,我把它放到了js文件里,汗啊
@象牙塔
呵呵,注意细节
[...] 这回胆大了,接着参照Z大的教程增加了WP后台直接回复评论:支持二级无限嵌套评论、@方式、邮件通知功能,目前我自己测试是正常的~ [...]
请问你没使用在编辑功能吗?其实想要测试看这功能....
@crazy
木有,不是必须的就不用了
@zwwooooo
那么可以请教下关于再编辑的问题吗?
发布评论后,点击再编辑,在不更改内容的情况下再点击发布按钮,没有出现重复评论的提示,而是再发布一次,如果重复同样的步骤,又会再发布一次,导致页面有`好几个相同的评论,但是刷新页面后就只是显示一个评论而已,请问会是什么问题导致的呢?
谢谢。
@crazy
因为“再编辑”是获取刚提交的评论ID对应的评论内容进行更改。这个问题最好直接请教ajax评论提交代码的作者willin
[...] 2012-2-13更新:把@功能加上去了,虽然没有特别实际的作用,但是还是享受一下又有at又有嵌套的伪快感吧~ 另外关于后台回复的@效果,旧评论悬浮框等等都可以在这里找到:zww的方法。 [...]
用通知评论可以增加互动哦。
@疯子
嗯,但要注意是“有人回复了你的评论”才通知比较好
用你的办法做了没有用哎. 为什么?是不是要下载对应的plugin?(我是用的主题默认的。)
@zhx
注意,是后台直接回复评论。另外看我写的“注意”
博主你好 你能给我一份完整的 comments.php和相关代码吗,弄了好长时间还是没有搞定哦,非常感谢!!
@北极飞鱼
随便下载我的一个免费主题就有了。
站长您好,我特别喜欢您的博客的留言楼层,还有回复的隔开的这个风格,请问可以分享么?
@小雨
直接看css就行了啊,况且一般的wp主题都是支持嵌套,只是样式不同而已
虽然很早的文章,受教了~
我这个主题折腾半天没整上,要去咨询作者了。。
大叔, 在手机客户端回复怎么加?
@大肥羊
不需要做修改啊
@zwwooooo
没有 @ 效果的
@大肥羊
手机app木有折腾,其实现在的WP后台做的很不错了,你可以用手机端APP,然后直接“查看站点”访问后台,因为支持响应式了。
疑问,为什么要支持无限嵌套呢?
只嵌套三层不行?
@CY's BLOG
可以,你不开启嵌套也行。无限嵌套只是为了方便经常在评论里讨论各种问题,有需要的自然就会去折腾,也没说这样就很好。
@zwwooooo
我主题默认支持。
@CY's BLOG
因为别人整合进去了,wp默认是不支持的,这也不是嵌套的初衷。
大叔,修订更新了没哦?顶顶 新年快乐
@helsinglee 你是说后台回复么?
@zwwooooo 前台哦,还有你的Quote功能咋个搞的哦
好厉害!
现在这段代码还可以使用吗?
@次克 头部已说明 WP 4.4 无效,我看这几天能否整理下。
@zwwooooo 很需要,楼主加油!
@次克 更新了,你试试,文章中“WordPress 版本 >= 4.4”部分代码代替原来的
@次克 另外注意下,新版本的 @xxx 是提交时自动加上的,而不是原来点击回复就有。
@zwwooooo 博主,我试了一下,还是没用
我用的是插件的WP-Mail-SMTP
可以去我的博客帮我看看吗?
@次克 这里的只是后台评论回复自动加 @xxx,如果要评论回复邮件通知你要添加“评论回复邮件通知代码”,而且这还跟你服务器是否安装好邮件服务有关,你先保证你的博客本身评论回复就能邮件通知。
@zwwooooo 如何保证你的博客本身评论回复就能邮件通知呢?
如果博客有新的评论,博客会自动通知我,可是我却无法通知别人。
@次克 访客的评论回复通知是需要另外加的功能,可以用插件或者看看《整理: WordPress 评论回复邮件通知代码》自己折腾下,如果能工作了,那么现在这篇文章说的才会工作。