首先感谢阿邙童鞋的折腾:《WordPress嵌套评论之无限嵌套之补遗》,重复内容此文会简单带过,不懂可查看阿邙详细原文。
WP默认嵌套评论最大深度是8层,可在特殊情况下,比如小站昨天开启了《喜迎小站二周年,评论有奖活动》,好多淫表示套不够用了,这个问题很是严重,大大打击了各位淫的兴头。
经过努力,郑重呼喊:小站套已充足,淫们尽情吧!
代码折腾正文,分三大步走:
一、增大嵌套层数
在comments.php评论回调函数添加“&max_depth=10000”,即嵌套层数改为10000
<?php wp_list_comments('type=comment&callback=mytheme_comment&max_depth=10000'); ?>
二、样式控制代码
以防嵌套多了后缩进太多,评论太挤,我们要做的就是一定层数后不缩进,使其看上去并列显示。
在functions.php内回调评论函数内找到类似:
<li <?php comment_class(); ?> id="comment-<?php comment_ID() ?>">
修改成下句代码,其中9和margin-left,共同控制使9层以后不缩进。
<li <?php comment_class('clearfix'); ?><?php if( $depth > 9){ echo ' style="margin-left:-35px;"';} ?> id="comment-<?php comment_ID() ?>" >
完成一、二两步后,无限嵌套已经是很正常使用了,有个问题也随之出现,9层以后的都是并列按照层次显示,这时就分不清哪条是回复哪条的了。解决方案很简单:
三、添加”回复”输入框自动增加”@用户名”
此功能依旧使用强大的jQuery,以下代码已改进,只在某层数之后才添加。
//某层数之后,点击回复输入框自动添加"@用户名" By ImMmMm.com $('.depth-8').children('.children').find('.reply').click(function(){ //class=".depth-8"子元素class=".children"下的class=".reply"的点击事件,注意:模板不同HTML结构可能不同,需调整! var rid= $(this).parent().attr("id"); //取得所回复的评论id,可能需要调整! var rna= $(this).next().text(); //取得所回复的评论用户名,可能需要调整! $("#comment").attr("value","<a href='#"+rid+"'>@"+rna+"</a> ").focus(); //在输入框添加"@用户名"和链接 }); $('#cancel-comment-reply-link').click(function() { $("#comment").attr("value",''); //点击取消回复时清空输入框 });
至此,搞定,收工!

10000..哭了
其实现在100而已……呵呵,记录,沙数+1
100是有可能超过的,试试看
看谁是第一个超100说套不够了~
双击回复,貌似很强大。
jQuery神器呀!
jQ本來就是神啊
不缩好啊 依然坚挺
美丽的沙发线条~~
@N,確實夠美麗
@小闇,我再来套个
@万戈,来得太晚了,TT试试
@Listensea,有多晚,试过才知道
@万戈,好小啊。。。
@万戈,这层楼杯具鸟,所以我不喜欢这种无限嵌套
感觉好囧 ~
@小邪,挤成这个鸟样了,左边可以放广告了,建议哟
@hzlzh,我也挤一下看看。。
@QiQiBoY,
来挤挤了。但是多了之后回复的空间就好少了,是否可以考虑增加下,都看不见了。
@3q博客,既然都来围观,我也来挤一下。
我也来顶一层~
弧線非常漂亮啊
保持队形~我哭~
有点尿尿个感觉~~~
在评论开始加上那个小男孩的话~~~
晕,还是抛物线啊。
还真是可以支持这么多,学习试用!
帅气了。我也来挤一下
我再挤一层试试
排个队~~~
无限套嵌是很美,但是……每套嵌一层就后退一点的话,会不会挤破层
哦原来是不做缩进
。没看仔细。
呵呵,三大步走完,还是相当完美地~
这样看来无限套嵌也有局限性。最好的做法还是评论聊到一定层数就开新楼吧
结构也清晰很多
相对来说吧,默认8层是少了……
可以套个20层,减少缩进距离。这样对于实际使用来说应该是足足够了。
咋不是特殊情况嘛,搞活动,不能没套用~
呵呵呵呵呵特殊情况特殊对待吧
再来看看有多少层
8层
9层了,不缩进对吧
10层
@winy 再试试缩进
@winy 神奇吧~
@winy 有@了,可以再加上hover的效果了
@winy 恩,正在本地测试中~
@林木木 还是感觉有套爽一些。
@许哥儿个人博客 嵌套嵌套..
@许哥儿个人博客 這兒也有這效果了
@许哥儿个人博客 可是版面有限制呀T3T
@小闇 无限的套 尽情的聊
@阿邙 不知道有无字数限制,我来看看效果————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
这样呢?
@winy , 这家伙,我来惩罚你……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
@流年,试试。
@winy , 没吧……
@winy,果然无字数限制啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@林木木
这一溜的回复
@Nathan 你没套上,再来个新楼
@winy,我套一个看看
@N,我再来加一成,嘿嘿~
@TTkea,我也加一层
@Dianso,我也来加一层~
@blueandhack,我靠,看看还能再挤下吗~~确实不容易
@N,真的不容易啊~
再来测试~好多了啊~
LS的嵌套太多會導致移位……大概是沒辦法的事啊
一直想要这个功能,就是弄不到我博客~
还是WP圈人才多撒~
functions.php内回调评论函数内找到类似:
<li id=”comment-”>
我的functions.php里面没有调评论函数。囧
找教程加上呗~
我的主题没有这种回调=. =还是老式的调用..
自定义个呗,网上有代码COPY地~
功能代码重要,前台样式显示也非常重要~
就是呀 我就是怕搞了以后乱成一团 期待新主题 咱也弄个无限嵌套!估计也用不了 现在最多5级就可以了~
我那里可以嵌套到60多层- -..
基本上嵌套到一定程度也應該要堆新樓的吧…
我只开到10层
好水……
你说的哦,继续水
我也水一个
也加我吧
凑个热闹
不喜欢修改wp源文件了,还是hack吧hoop吧
没有修改源文件啊,囧。。。
同bolo所说,没动源文件的……
扫了一下没仔细看
,竟然给围观了,忘了这里正在举行水王大赛,囧
此人老眼昏花了
估计zww 就扫了下文章 然后看到functions.php 再然后就..
@winy , 上回就是Z大发出的疑问 我才写的补遗
所以才奇怪
Z大太忙了 遗忘了
又来晚了
沙淫是运气地~
工作时间不好抢啊
不好抢 +1 …
你功力退了?
木木这里突然火了~果然有奔头儿就是不一样
恩,闇MM是领头羊~
灌水不容易啊
木木这里一直评论不少哇
单日评论100+还是比较少啊~~
就感觉wp的回复特别牛叉,很是羡慕。
那來WP吧
原来我在找素材的时候 你都发了文章..
恩……是地
我在水的時候都不知道你發文了
来的太晚了..好杯具..
还好,看第一刷了多少
也不多啦~我還想刷個300呢
我无视他= =.
好淫退散,这里是坏淫集中地
好吧 我成壞淫好了
你穿越了~
我比你还晚那
我家那個不能設限定嵌套呢……(離題
我那还没开启的必要
我也不開了
这篇好大的洪水啊
洪水在置顶里~
那个非常非常
都是winy他們一直在灌…我只灌了少許~
唉? 你回來啦?
回来又能咋的,赶不上啊
我是指**這篇文章** 整個博的話…
比闇MM的功力差得不是一点两点啊
他要努力了
我就保持第二就好了,女士优先
不要这么直白啊
我是個心直口快的淫,winyMM要原諒我啊
@小闇 我是男淫
@winy 我是故意的可以不
早知道你有JJ了~(快樂飄過
@winy ,真的吗?
@林木木 ,
这年头说是男的都没人相信
@winy , 那我就叫你winyMM好了(蓋章
@小闇 , 这绝对是杯具
@winy,淫都饥渴撒!
@winy 你被强制变性了..
@阿邙,這年流行女體化……(才沒有
@小闇,
还能继续套
@小闇,比如伪娘哥
偽娘……在度娘上看一些照片都不知道本人是男淫
华丽拍飞灌了255的
再拍一下
貌似現在沒淫灌了255的,微笑飄過
因为你又灌了,变成261了
可沒有261耶
跟不上时代的脚步啊
跟不上闇MM的腳步啊 你可以這樣說
在这个时候,时代附身了,你已经不是一个人了
對喔
你又穿越了~
拍拍拍~第二名離我有距離啊
那个得意样
別生氣~摸摸
给颗糖就够了
@流年 , 小孩子要糖wwwwwwwww(笑翻
(被掌摑+揍+擠郵箱
@小闇, 甜头嘛,这是必须滴
@流年 , 我真的想到了「小孩子要糖了」
@小闇,
挤挤~
再擠,真過份啊~乘人之危是不對哦
你们两个真是的,也不看看这楼是谁的地盘,要闭合
@流年 , 你可以加塞,不闭合也没关系,又不用通过w3c验证
@winy , 做人要有始有终嘛
我是来看套套的
够气势吧?
絕對夠!! 可以盡情水了~
我来用套
套个你
你被套了
再套你
这里插一脚吧~
看jQuery代码哦,够精准~
有朋友建议@用户名 只后加上逗号 感觉更方便阅读些
恩,我改改去~
我还是觉得两层嵌套比较好看,用@显示
各有优势 嘿嘿 这样有层次感
jinwen一直是这样
所以我还没加上判断层数加@用户名 哪天想改了直接改成那样
我家主題也有這功能
耶~第300條留言紀念
边笑边哭,不愧是第一人
很有趣的表情
101条顶你
拿500條來頂我吧
不容易那!!!
還好還好~亂入留言板SF我很愉快XD
先水再看
额……
FF下還真完美啊
影响不是很大就没修复了,随它去了~
我正在找这个呢!
那刚好~
对了,请教木木一个问题,我之前用的是ajax-comment评论插件,评论有嵌套,换主题后嵌套格式就消失了,有解决办法吗?
要修改主题采用原生的WP评论函数,我看你现在用插件也行的,省得折腾~
刚才没说清楚 我刚买了新主机同时也想换个主题
为了防止网站搬迁不成功就做了本地测试
但测试时评论的嵌套样式总是丢失
这个问题好解决吗?
看不到就说不清咯~
最笨的方法是改完后手动再回复一遍~~~~
我过来新开一个套的。
再套一个。。。
小心被爆菊~
好夸张的嵌套。。你这发大水了
14樓那個是我見最長的嵌套了
还好还好,还能承受~
眼花了…很花….
晕了不晕了不?
表示眼睛還可以接受
太牛了吧
没有啦,一点点一点点而已~
謙虛了
这个不停地换主题的话就完蛋了
我相信木木對這主題還有很多很多很多很多東西想折騰的,應該不會那麼快
折腾当然是固定主题后才开始嘛,不然纯属找杯具……
这个确实是这样啊,我这两天就悲剧了……
貌似都玩的爽了··哈哈·无限嵌套
在阿邙家燃燒著這風潮
爽翻天了,貌似~
不好玩,真的太多留言还不如@reply
之前還有這個的……是木木丟了功能麼?
现在是一定层数后才@呀~
呵呵,娱乐,纯属娱乐~
评论好乱啊 !
很整齊嘛,就是有點…
不是一般人能乱出来的~
哇 嵌套感觉好离谱了
還好還好~起碼知道誰回覆誰
中国特色撒~
14楼真恐怖 ~
我也覺得很恐怖
大家水起來的功力2深厚
蛋定蛋定~
建议木木缩小“缩进”
35px改小到25好了~
我再建议非线性缩进,二次函数缩进弧线效果不错
代码怎么写?
<?php echo ‘ style="margin-left: ‘ . ceil(30/sqrt($deep)) . ‘px; "’; ?>
除以(楼层数开平方)再取整,第一层回复 30px, 第四层 15px, 到第 25 层,margin-left 就只有 6px 了。于是呢,从线性变为弧线
http://fis.io/comment-new-experience.html
一直很喜欢这个,可惜没得水
额,这篇文章我还研究过呢,怎么没看到这句……
因为以前用不上,哈哈
出错,算出0后提示出错了……睡了,明天再折腾~
$dee改为$depth,今日发现了
记下,等会试试~
@林木木,我已调试成功
恩,已添加,效果不错,正在想怎么更突出这个效果……
我跟zww讨论过了,建议你留白少一点。
是不是把加速提交也列入了这次的修改项目
啊,自己过来推销了
恩,要的要的!
我靠 这效果 搞得跟上校摇摆一样。。。
PHP还行 能看懂 jQuery太强大了 自己只能翻白眼。。。
我刚好相反,PHP白眼翻死……
开套,原来这样就可以控制,强悍
没有做不到,只有想不到~
太强大了
套的太多影响美观
这个过把瘾就死嘛~
这嵌套好壮观
超壮观了!
看来、、、、博主果然是淫道中人、、久仰久仰!!
淫魔?
他是超级淫魔~
这个评论效果蛮不错的嘛
各有所爱~
青菜和萝卜各有所爱~
不喜欢非常多的嵌套,感觉很挤。
的确,特殊时期还是得开下撒
嵌套的太花了……我都晕了~
晕呗,我会抱起你的~
沒暈的淫在一旁羨慕著
看来无线嵌套也有缺点啊。大家都爱挤。。
是的,鱼和熊掌兼得还是有一点难度的!
想加个@用户名,测试无数次,还是无效。
这个jQuery代码得根据你评论的HTML结构调整调整的……
修改过对应的位置了,还是不成功。可能以前是主题自带的,然后我把那功能删除了,那原来的JS也KO了。
添加回复输入框自动增加”@用户名”,我用起来没效果,汗
主题不同肯定是需要调整地~
$(‘.depth-1′).children(‘.children’).find(‘.reply’).click(function(){ //我改为第一层后的开始添加,.children 和 .reply 都存在。
var rid= $(this).parent().attr(“id”); //取得所回复的评论id,这个的确要改,我的 .reply 的父元素不是所要回复那个评论的 id,而是父元素的父元素,是否可以改成:$(this).parent().attr(“id”)?
var rna= $(this).next().text(); //取得所回复的评论用户名,这句我看不懂,见谅,没学过jQuery,似乎没有可改的?
$(“#comment”).attr(“value”,”@”+rna+” “).focus();
});
$(‘#cancel-comment-reply-link’).click(function() {
$(“#comment”).attr(“value”,”); //取消链接的 id 是这个,textarea 的 id 也是 comment,点击取消没有效果,这点想不通了。
});
淫魔还称不上
我还比你差一筹
HOHO~努力努力
哈哈、、、、我会努力的
拭目以待~
请教一下 改完marginleft之后不是9层以后不缩进而是向反方向缩进了这是为什么呢
你新主题貌似HTML里DIV有问题……
我知道有问题 我要是知道问题在哪就改了
把无限嵌套里function里那句删掉了就好了。。。
林木木 回复: 你可以试试~
这是什么意思???
有个问题 就是这样之后我点完上面某个人的回复是在一整个子评论的下方了回复。。木木知道我是哪里的问题么
把评论回调的HTML结构改成WP官方默认的,上次我也出现过~
改成默认的?那样式不就不能保留了咩
是functions.php里的ID和CLASS,HTML结构调整下
可惜我内主题不是嵌套的。木木要是有心指导下改成嵌套的。不胜感激啊。。。
我也想學習弄嵌套……網上有教學我知道,不過太深看不明白……有時候一有錯誤我就不想折騰了
小闇继续加油、伱成功叻教我一招儿 嘿嘿..~~
我也想學習啊
同学同学。。嘿嘿 。。。我突然感觉木木这个邮件通知很N。不管谁回复都会通知到。我也按照伱教我的内个用willin kan大師的 Comment Mail Notify ,可是只有管理员进入后台回复才会通知唉..~~ 纳闷儿叻..
上面的线多得像网,眼花缭乱@-@
精彩
我最近遇到这个问题了。不错的解决方案/
太妖孽了。。。
特意这么处理的~
学习了!
第三步的代码在哪改啊?
jQuery代码,请搜索使用方法~
請問 3.2.1 版怎麼改呢?
因為找不到 wp_list_comments 這段可以更改