372 views 二月 17, 10 by Timothy
为了Blog日后的改进和完善,偶越来越需要一个本地的测试环境。毕竟,直接在本地改程序,再上传到线上看修改后的效果,这是比较有风险的做法,并且也很不规范。由于WordPress是基于PHP的,而偶的操作系统又是Win7,首选的做法,就是用IIS+PHP+MySQL来搭建测试环境。并且,Windows下面配置起来没什么难度。不过我更倾向于Linux,所以选择了CentOS 5.4 + MySQL + PHP + Nginx,装在VirtualBox的虚拟机中。一来为了熟悉下Linux,二来是为了以后搞VPS先热点身,嘿嘿。
装好CentOS,没选择X Windows,直接用了Licess同学的一键安装包,非常方便。Licess同学为我们写好的Shell脚本里面,能自动完成下载、编译、安装的过程,省去很多繁琐的过程。安好后,需要根据自己的喜好更改一下设置即可。其中也遇到很多莫名其妙的问题,偶又是Linux新手,所以只有询问google老师,不过还好都找到了答案。待基础的几个软件都搞好之后,就可以安装WordPress了,然后将线上的博客内容通过PHPMyAdmin导出,再在虚拟机中导入即可,一个测试环境就OK了。另外,为了传文件的方便,还在CentOS上装了个vsftp,用以和Windows交换文件。经过这次折腾,发现原来Linux下面也这样好玩,打算以后多学习和折腾一下Linux,把家里那台N久没开过机的老台式机,也装个Ubuntu玩玩。


324 views 二月 04, 10 by Timothy
自从实现了Ajax的评论后,俺还是对评论部分有点不太满意,于是又开始拿评论开刀了。
1.首先想到的,是评论没有分页显示的功能,如果评论数量太多,会把页面拖得很长,在google搜索了一下,原来WordPress原生已经支持评论分页的功能了,所以一不做二不休,继续改动。
其实改动很简单,打开模板的comments.php,在类似wp_list_comments();列出评论的代码后面,加入下面的代码即可:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <?php
// 如果用户在后台选择要显示评论分页
if (get_option('page_comments'))
{
// 获取评论分页的 HTML
$comment_pages = paginate_comments_links('echo=0');
// 如果评论分页的 HTML 不为空, 显示导航式分页
if ($comment_pages)
{
?>
<div id="commentnavi">
<?php echo $comment_pages; ?></div>
<?php
}
}
?> |
2. 实现Enter+Ctrl快捷回复,这个比较简单,用jQuery实现,正好这两天也在学jQuery,就当练练手吧。为了增加代码可读性,方便以后维护,将这部分自定义的jQuery代码放在单独的js文件中:timothy.js
1
2
3
4
5
6
7
8
9
10
11
| $(document).ready(function(){
//Ctrl+Enter for fast submit
$("#comment").keydown(
function(event){
if(event.ctrlKey && event.keyCode == 13)
{
$("#submit").click();
}
});
}); |
代码比较简单,检测评论框的keydown时间,并判断是否同时按下了Ctrl键和Enter键,如果条件成立,则直接出发提交按钮的点击事件。将此部分js代码上传,并在header.php引入此脚本文件,效果立马就有了。这下同学们可以通过Ctrl+Enter快捷提交评论了。不过后来发现一个问题,这种用Ctrl+Enter快捷提交的评论,不会触发Ajax评论的效果,后来仔细找了找原因,发现Ajax评论的jQuery脚本中,并没有绑定提交按钮的点击事件,而是绑定的整个Form的submit事件,所以把刚才的脚本小小修改一下即可:
1
2
3
4
5
6
7
8
9
10
11
| $(document).ready(function(){
//Ctrl+Enter for fast submit
$("#comment").keydown(
function(event){
if(event.ctrlKey && event.keyCode == 13)
{
$("#commentform").submit();
}
});
}); |
这下就搞定了,支持Ctrl+Enter提交的Ajax评论,呵呵。
3.这个修改源自Zww同学的提议,在每条评论中增加”回复”按钮,原以为我的皮肤不支持嵌套评论的,尝试着在WordPress的设置项中,把嵌套评论给Enable了,这样的话,每条评论就自动有了个回复按钮。接下来,想实现点击回复的时候,自动把评论的同学的名字填入到评论框中,也就是类似 @XXX: 的形式。大体思路是通过jQuery来实现,绑定这些回复按钮的click事件,获取评论的同学的名称,设置到评论框中。其实Zww同学早就实现了这样的功能(前去围观),所以jQuery也可以偷师过来了:
1
2
3
4
5
| $(".reply").click(
function(){
var name = $(this).prevAll().find("cite:first").text();
$("#comment").text("@"+name+":").focus();
}); |
同样,放在$(document).ready里面即可。这次改动,俺意外的发现,原来我的皮肤支持嵌套评论……或许是加入了Ajax评论组件的原因,嘿嘿。
此文很菜,没啥技术含量, 算是学习jQuery的一点心得吧,前路茫茫,吾将继续折腾下去……
259 views 二月 01, 10 by Timothy
我用的这个皮肤有点旧,很多东西都不支持,但是又舍不得换掉,于是留下了折腾的余地,生命在于折腾嘛。看着Zww同学和久酷同学的Blog,都支持Ajax无页面刷新评论,心里也痒痒的。好像WordPress最新的版本,已经支持Ajax评论了,但是又不知道怎么搞。在Google网上一阵乱搜,找到个不错的解决办法,一个老外同学的一篇文章,照着一步一步改下来,还真实现了,除心里一阵狂喜之外,心里还小有成就感……其实网页也是我的弱项,接下来需要一边学jQuery,一边在现有的皮肤上动刀,再美化美化,呵呵。
最后,推荐下老外同学的添加Ajax评论的文章:
http://zeo.unic.net.my/wordpress-ajax-commenting-revisited/
=========================威武的分割线=====================
updated: 2010.02.03
上面的文章较老,后来发现添加Ajax后,有bug,于是按照Zww同学推荐的方法,找到另一篇指导文章,捣鼓了半天, 总算搞定了。脚本中由于需要访问一些元素,但是由于我的皮肤本身不支持嵌套评论,所以也把.js脚本小改了一下,屏蔽掉部分东西。这篇文章非常不错,强烈推荐下:
http://willin.heliohost.org/?p=1271
178 views 一月 06, 10 by Timothy
新增了一个轻量级的邮件通知回复的插件:Mail To Commenter。从现在开始,博友可以通过邮件收到偶回复留言的通知了。开始本来打算使用Thread Comment的,最后还是放弃了,选择了Mail To Commenter。该插件的使用和配置也很方便,由咱国人开发。
插件主页:http://www.thinkagain.cn/archives/989.html
插件下载地址:http://wordpress.org/extend/plugins/mailtocommenter/
268 views 十二月 29, 09 by Timothy
一个很有趣的插件,能显示博客评论者的相关信息,并以图标的方式显示出来,包括评论者IP所在的国家、浏览器、操作系统,这种统计还是比较有意思,也相当直观,看图吧:
安装过程也很方便,后台直接启用,然后小小设置一下,就OK了。
插件官方地址:http://hieudt.info/wp-plugins/comment-info-detector/