评论投票插件 Comments Vote
在Neoease网站上看到有个有个留言投票插件蛮好玩的,根据mg12透露的信息,这是修改自Comments Vote和comment diggs这两款插件。可惜mg12可能是出于非授权修改,以及不想象Inova之类主题成为满大街都一样的原因,并未将修改版本提供共享下载。
出于对效果的喜爱,决定自己动手试一下,因为mg12提到这种修改并不难。其实对于我这个开博一年多,目前留言还未破百的网站来说,这个插件也只是装饰意味大于实用。
只是没想到改起来的确不容易,尤其是对于我这种非科班出身,仅C语言进行过科普式学习的人来说是有些为难了。当初以为只是直接引用<?php commentsvotePanel(); ?>,投票窗口就会显示在你想显示的地方,结果发现效果就是不出来。
无难之下,只能硬着头皮去研究comments vote的所有代码,顺带把comment digg、Ajax comment vote、coment ratting相似插件也down下来比较下。中间还参阅了wordpress一些函数的介绍、PHP和CSS的使用,反正就是边砍柴边磨刀,前前后后花了大概4天才弄成现在这个样子。中间修改文件N次,还有次把blog都给改成白屏了,幸好之前对数据库有所备份,不然真的亏死了。
总结下来,要是知道修改方向的话还是很简单的,我属于绕的弯路太多了,为避免有需要的人少走弯路,将思路分享下。基本是按照mg12网站上的效果来仿照的,换句话说就是山寨版。
1)显示
commentsvote.php文件第47行
add_filter( ‘get_comment_author_link’, ‘commentsvotePanel’ );
get_comment_author_link是默认触发显示的地方,你也可以修改成get_comment_time、get_comment_date、get_comment_author_url等想要显示的地方;大家可以根据自己使用的主题所引用的函数以及需要显示在那个函数后面来替换。我现在用的是comment_text,也就是将投票插件显示与评论内容挂钩。
值得一提的是,mg12写的主题引用的是get_comment_author_url,所以经常有人装了插件也不显示的原因就在此。另外mg12写的侧栏插件Wp-recent commens用的是get_comment_author_link,如果装了这个插件的会发现在侧边栏评论上显示投票按钮,而文章下面的评论却没有投票按钮。
另外非常奇怪的是add_filter()好像只对wordpress指定的函数有效,自定义的不知道为什么没有用,哪怕我在wordpress文件wp-include/comment-template里面定义的函数也无效。可是按照官方的函数介绍,好像没这方面的限制,迷惑中。
2)效果
修改的地方
·commentsvote.php的133行到139行为插件输出的html显示格式,可在这里修改显示的内容。
·将$author移到最前面的话,comments vote的投票按钮会出现在被hook函数的后面,否则是默认被hook函数的前面。
·显示效果,按钮特效可以通过修改主题文件的Style.CSS或者插件的Style.CSS实现。
声明下:关于按钮特效我是抄袭自mg12的博客,现在使用方式是“非商业-署名-相同”。
3)其他
·mg12是结合comment digg使用显示结果,想来是为了避免投票以后只显示“Vote recorded.Thank you!”。这点我倒不是特别在乎,反正自带的也有结果显示,只是投票后不显示影响不大,能少一个插件就少一个吧。
最后效果如下:

测试comments vote用的评论,欢迎投票。
Test for comments vote.
学习了!顶顶顶。。。。