前段时间使用了偶爱偶家的 Thread Comment ,插件自不用说,非常好用,不过在和我的sandbox配合时,有一些显示效果上的小问题。昨天一时兴起,修改sandbox的评论显示让其支持gravatar,同时也动手磨合了一下两个系统。
问题其实不大,最开始就是背景配色,这个很简单,修改一下css,去掉一个背景色就OK了。然后显示gravatar,也只是一个函数的问题。主要的问题是,我用的这套基于sandbox的css,可以在文章作者的评论的作者名后面加上一排星星的背景,用于区分作者和浏览者。但是用了thread comment后,作者线性回复的评论中,就不会显示那一排星星。
翻阅其代码可见,sandbox在评论区一开始是这样一个结构:
于是,在CSS中,配合下面这行定义,就可以实现在作者的评论上添加星星背景。
li.bypostauthor div.comment-author {background:#f0f0f0 url(starbk.png) top left repeat-x}
这里就出现了问题,对于独立的评论而言,每个评论隶属于一个li结构,因此每个评论会单独进行判定。但是使用了thread comment后,所有线性的评论同属于一个li,因此整个评论都不会被加星。
为了解决这个问题,考虑在li中再次嵌套li,修改thread comment的配置,添加li后,显示更为混乱,貌似这种显示是不可取的,于是,干脆将评论中用户名和发表时间的两个div再装在一个div里面,该div会调用sandbox_comment_class获得一个class,并且将默认的显示代码全部换成sandbox的显示代码,于是将整个html修改为:
comment_approved == ‘0’) _e(“tttttYour comment is awaiting moderation.n”, ‘sandbox’) ?>
[content]
您这个太复杂了, 其实wp thread comment 自身已经包含了判断是否为文章作者或者管理员的函数, 直接把sandbox的css引用进来就可以了.
呵呵,多谢指教,我也发现了,但是我比较懒嘛,这样弄比较方便,都是拷贝的代码,不用动脑子~:)