2011年10月29日 211条评论

WP后台直接回复评论:支持二级无限嵌套评论、@方式、邮件通知

“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.4Update: 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
or
oooo

“WP后台直接回复评论:支持二级无限嵌套评论、@方式、邮件通知”有211条评论

  1. rockxsj says:

    大侠啊 想问个问题 就是我的主机邮件服务器经常不能用 这样别人就收不到我给别人的回复 有没有什么办法啊? 比如自己用什么邮件服务器代替之类的??

    1. zwwooooo says:

      @rockxsj
      神马主机?虚拟主机还是vps?如果是虚拟主机你要咨询服务商,如果不提供支持可以尝试一些插件,具体名字我记不了,搜一下。

    2. yazi says:

      @Dick_Wu
      The SMTP debugging output is shown below:

      SMTP -> ERROR: Failed to connect to server: Connection timed out (110)

      SMTP Error: Could not connect to SMTP host.

      好吧 当我看到你的回复的时候 心里一阵窃喜 蛋似配置完之后依然惯例上面错误提示~~ 主机不支持ssl连接 勾选了无安全理解 用的QQ邮箱 rockxsj@gmail.com是测试邮箱~~~

    3. yazi says:

      @zwwooooo
      插件测试了好多 都不行的 都是不能连接smtp服务器 用smtp应该不需要mail()函数支持的才对 之前用asp.net做一个项目 直接用的smtp实现的都可以 好奇怪啊

    4. Dick_Wu says:

      @yazi
      主要问题是即使启用了WP-Mail-SMTP,也照样会出问题。。。因为很多插件默认还是使用的php mail()函数,所以要删掉WP-Mail-STMP里面的一串代码。。
      还有gmail是不能用的我在文章里面已经说过了,所以我的范例写的是的QQ邮箱,一般用不需要SSL的邮箱。

    5. Dick_Wu says:

      @yazi

      // If the from email is not the default, return it unchanged
      	if ( $orig != $default_from ) {
      		return $orig;
      	}

      注释掉这一段

    6. yazi says:

      @Dick_Wu
      我用的就是QQ邮箱 smtp.qq.com 端口号25 选择的是不用任何安全连接 那段代码也注释掉了 依然提示can not connect to stmp host 尼玛 都快疯了 各种没有道理啊

    7. yazi says:

      @zwwooooo
      000webhost的免费主机 速度什么都能接受 邮件解决不了真烦人

    8. zwwooooo says:

      @yazi
      果断换服务器。

    9. zwwooooo says:

      @yazi
      免费的你就别要求了,呵呵

  2. Dick_Wu says:

    z大你难道在折腾你的VPS吗?为什么我现在访问zww.me慢到疯掉 :arrow: :arrow:

    1. zwwooooo says:

      @Dick_Wu
      服务器不稳定,囧rz

    2. Dick_Wu says:

      @zwwooooo
      原来是这样。。。。我还以为你在看U2B把。。 :shock:

    3. zwwooooo says:

      @Dick_Wu
      木有办法,los太多国人吧,国人多的地方比较杯具

  3. 郑永 says:

    z大,的确有点慢了~~~服务器问题?

    1. zwwooooo says:

      @郑永
      对,明天再解决。

  4. 额 这个貌似都可以把

    1. zwwooooo says:

      @软件风暴
      。。。你没看清楚,我可不是说只是“后台回复”

  5. 秦天SEO says:

    这次全了,感觉插了个分页评论,要不真全了

    1. zwwooooo says:

      @秦天SEO
      自个玩的东东

  6. 小灰 says:

    马克~下次折腾,该有的都有了似乎~很不错呀~~~~

    1. zwwooooo says:

      @小灰
      懒人的东西。

  7. 速度很稳定啊 拖着在线视频 打开也无鸭梨啊!
    不明真相

    1. zwwooooo says:

      @心淡若水
      你说啥呢?

  8. Q Music says:

    学习下! :mrgreen:

  9. C瓜哥 says:

    又要改源码,有插件版的就好了

    1. zwwooooo says:

      @C瓜哥
      这很简单吧。。。

  10. 有点蓝 says:

    就这么简单? 我是说我的沙发这么简单就没有了……

    1. zwwooooo says:

      @有点蓝
      对,沙发很容易没有

  11. 小D says:

    呵呵..zww很专业的说!!!!!!!

    1. zwwooooo says:

      @小D
      瞎搞玩玩而已

  12. huangjun says:

    能在后台直接回复还能发送通知?这个厉害!

  13. 小王子 says:

    折腾真是件好事啊

  14. yywr says:

    以前后台复评论一直都让人无法满意

    1. zwwooooo says:

      @yywr
      那就试试这个,霍霍

  15. 我的主题不支持吧。。

    1. zwwooooo says:

      @蓝色离子
      一般嵌套的应该可以,但我没测试。

  16. 秦天SEO says:

    有个问题请教下:.commentlist .children div.vcard img.avatar{left:-36px;top:14px;width:20px;height:20px;},设置后,发现头像由于left:-36px而无法显示,博主是怎么显示的?

    1. zwwooooo says:

      @秦天SEO
      看看你的是不是有overflow:hidden属性,有的话,超出父元素的就会隐藏。

  17. wmtimes says:

    后台表现出二级的形式?

    1. zwwooooo says:

      @wmtimes
      我可没这么说。

  18. 云刊 says:

    看起来不会斜斜的,比较齐整

    1. zwwooooo says:

      @云刊
      肯定不斜,这里说的又不是更改后台样式

  19. 郑永 says:

    貌似和我一样,好久没更新而来。

    1. zwwooooo says:

      @郑永
      忙,没啥写,然后就这样了

  20. 所以呢 says:

    我的才真的不支持,,,悲催的我

    1. 所以呢 says:

      @zwwooooo
      就是不会改呢!~!~! 有一朋友是装一个回复插件,再加大代码;另外个朋友是直接修改的代码,再独立出来,,,哎

    2. zwwooooo says:

      @所以呢
      那就自己学学吧

回复给 有点蓝 ¬
取消回复

昵称 *

网址

B em del U Link Code Quote