主题嵌套回复及邮件通知的调整
WordPress 支持的嵌套回复可以让我们直观地看到回复和被回复的评论,层次之间的关系显得更加清晰,但是当嵌套层数过多的时候便会引起样式的混乱,并且嵌套层数总还是有一个限制的,当达到最大层数的时候,接下来要回复的一个人也不得不重新选择前面的某一层去回复,这样一来会使得整个的对话变得混乱。以我原来设置的5层嵌套为例:
从1到5的数字表示嵌套回复的5层评论,假定都是在讨论某个话题,此时第6条评论希望针对第5条评论进行回复,可是此时第5层的评论上已经不会出现回复按钮了,于是不得不选择前面的某层譬如第一层进行回复,这个时候会话关系就被打乱了,第6条针对第5层评论的回复却处在了回复第一层的位置(如图一),这样后来的访问者是极有可能搞混淆的。(如果第6条评论选择重新对文章进行评论即新开一个话题情况如图2也类似)
图一,转为回复第一层评论 图二,转为回复文章
为了解决此种这种情况,我参照 jinwen 的方法对嵌套回复的策略做了一些修改,结合 willin 的原生回复邮件通知代码 和插件Comment Reply Notification,现在实现的效果是:
回复仅允许最多2层的嵌套,第一条评论发布后当然是嵌套的第一层,第二条评论点击第一层的回复按钮正常对第一层进行回复,系统向第一层评论者发出邮件,告知有人对其评论有了回复。第3条评论如果选择对第一层进行回复那么情况同前,也可以选择向已有的第二层评论进行回复,不过此时点击回复按钮时,在评论框会自动添加 @reply 字符,评论发布后仍然处于第二层位置,由 @reply 区分被回复的人,这个时候系统将向第一层评论者和第二层被回复者两个人发送邮件通知 。评论效果如下图:
关于具体的修改方法,原作者的文章已经讲得十分详细,我就没有必要重复了。不过我在使用 原生的回复邮件通知 功能时遇到有人一对文章进行评论时就收到邮件的现象,看了下是代码没有对获取到的父评论 ID 为 0 的情况进行处理,将代码中的
- if (($parent_id != '') && ($spam_confirmed != 'spam') ) {
修改为
- if (($parent_id != '') && ($spam_confirmed != 'spam') && ($parent_id != '0') ) {
即可解决问题。
此外最近修正了一些评论样式上的问题,现在看起来舒服多了 ^.^
本文链接: http://isouth.org/archives/238.html , 转载请注明出处,此外还可以订阅我。
这样修改的话应该是很不错的
嘿嘿,折腾的时候,邮件回复功能出了问题,费了很多时间-.-
其实盖楼的时候水水不是紧闭到L6了嘛- -+
是的..-.- 。。 不过现在可就没机会了
我也去鼓捣一下啊!
俗称折腾,呵呵
@起衣 我来试看看
测试下下
@军港 汗..测试得怎么样?
@ugg boots cardy 路过,休息下~哈哈