我使用WordPress已经一年半了,由于我频繁的改动,使得在WordPress2.2.2到2.3的那一次升级一直没有时间进行。原因是UTW的tag系统和新的WordPress自身的Tag系统切换太复杂(不仅仅是数据结构,最要命的是一系列的模板改变)。
昨天,很不幸地发现有人居然在试图拿取我的博客管理员账号。于是,下定决心直接升级到最新的2.6.2了!当然,其历程是无比坎坷的,也赚的一些经验,分享如下:
首先,最重要的:从LBS到WordPress2.0那次升级就吃过一次苦头,这次又一次吃苦头:服务器千万不要使用WINNT类型。否则会出现很多怪异的错误。例如我在本地升级的时候,一个tag“张信哲”死活无法正确显示。询问了很多朋友测试,都没有问题。最终发现,在我自己的服务器测试,也是好的。由于我的博客微软的粉丝挺多的,我强调一下,并不是说Windows服务器差,只是WordPress这种PHP+MySQL并且专门为Apache优化的玩意跑在Windows不合适:)
由于WordPress在2.3和2.5两个发行版均进行了数据库结构改变,再加上自2.3开始,内部的tag系统取代了UTW提供的tag支持,因此升级的过程极为复杂。以下列举几个需要注意的地方:
- 数据库的导出
使用mysqldump可以将数据直接导出。如果因历史原因没有采用utf-8的数据格式,可以在导出参数上加上一个:–default-character-set=latin1,即:
#mysqldump –default-character-set=latin1 -uYOURACCOUNT -pYOURPASSWD DBNAME > /…/wwwroot/backup.sql - 本地测试环境的搭建和数据库的导入
在导入SQL文件之前,最好做一次批量替换,将正式域名替换为测试域名。例如我就将www.awflasher.com全部替换为了aw.com(我在本地改了HOST,用这个域名专做测试)。否则,本地若是localhost(或者我的aw.com),是无法打开直接导入的数据库的。
导入数据库使用mysql命令行的source命令即可。关于source的使用,到处都是教程,非常易用。 - 升级、导入UTW标签(Tag)
第一步,执行 /blog/wp-admin/upgrade.php 完成数据库结构更变;
第二步,进入管理后台 /wp-admin/ 。这时候,可以看到全新的WordPress2.5管理界面。可能还有点不习惯,不过没关系,找到Manage->Import,里面会有一个专门针对UTW的导入(wp-admin/admin.php?import=utw) - 数据库结构更改引发的模板API更变
修改我的TES,将UTW的API逐个去除,再改为支持WordPress内部的tag系统,这恐怕是整个升级过程中最复杂的一个环节了。当然,在新的数据结构中,categories(分类)和tags(标签、关键词)被统一整合为wp_terms表,这也许会对日后的分类标签管理提供更好的解决方案。
对于原来主题文件中的“UTW_”函数所造成的损失,UTW的作者提供了一个兼容解决方案。个人觉得还是比较方便的。当然,如果追求主体代码的完美,则还是手工更改吧:
首先更改基本的Tag显示:
旧:UTW_ShowTagsForCurrentPost("commalist", array('last'=>', %taglink%', 'first'=>'关键词:%taglink%',))
新:the_tags("关键词:");
然后去掉UTW_ShowRelatedPostsForCurrentPost一类函数,改用WordPress Related Posts插件来完成这项工作。对应的函数是:wp_related_posts()
Tag为张信哲的文章始终无法显示,非常奇怪。在后台中发现,给它一个slug之后马上就好了。可是这样,原来的链接就全部破坏了。这个问题,实在是令人费解。
换成Linux服务器,就解决了。 - 其他修改
由于WordPress自己的Tag系统永久链接和原来的可能不一致,因此需要在永久链接配置页面进行单独修改,以保持新旧URL的一致性。此外,Tag Cloud也有了新的模板标签,你可以在文章中输出,亦可以在页面中输出,非常灵活强大,详情见此官方文档。
此外,由于我用jQuery做了大量修改,这些地方的检查也需要利用Firebug和Fiddler等辅助工具仔细查询。比如留言提交目标、DOM中的id值,等。 - 一些插件带来的问题All in one SEO
如果是中文博客,在Tag(标签)和Category(分类)页面很可能会出现“标题首字乱码”这一奇怪的问题。不过Google一下很快找到解决方案。
WP Polls
需要重新更新一下模板(设置里那几个Ajax提交的按钮按一下),数据结构没有调整,只是作者把polls目录换成wp-polls了,不太明白意义何在,加一个“wp-”的前缀,显得更官方?
SitemapXML
注意修改相关目录写权限,如果数据库保留了相关的wp_options表,则基本不用重新输入配置。
WP-Super-Cache
注意修改相关目录写权限。并且一定要确认配置文件wp-config.php里有这句
define(’WP_CACHE’, true)
从2.2.2一口气升级到2.6.2,这感觉就像98年玩《三国英杰传》时攒够了装备直接把“短兵”升级为“步兵车”一样;而“装备”不齐时,等级够高也无法升级,这种遗憾,我也体会了好久。这两天以下英雄纷纷帮忙献计献策、援助测试,这里要深深地感谢:
水煮鱼、Sluke、Hailin、Joyqi、Spirit zz、Chada、David、峰回路转,陆续补充……
在IE下有一个特别奇怪的bug,这里要特别感谢Realazy老师提供的帮助!
这次升级颇费周折啊
是啊,太不容易了……:)
刚刚还是快来抢沙发,怎么我进来一看,确有两个评论了,而且时候都在这么前面?
可能是我的博客反应速度过慢。
垃圾评论在我升级好之后就接踵而至,唉,实在是太可怕了:(
啊,了解了,是我自己电脑上的时间和你的博客上的时间不一样,好像是这样的
这个跟时间没有关系吧?
似乎访问速度也没有大幅的提高啊…
为啥子一定要更新呢
恩,为了安全,顺便测试一下访客评论……
我有升级强迫症,支持升级
能忍的住这么久不升级,PFPF
E,aw你评论不打算审核了么?
恭喜恭喜,你的文章列表页貌似还有问题
你这跨度可真大:)
升级成功了,恭喜!
一步大变化啊……无比庆幸我6月才开始接触wp,上手就是2.5.1,麻烦减少好多……结果更换域名还是让我头痛了一天才搞定
wp的导入导出太痛苦了!
不过说起来,下面那个快速检索那么长,最热top20和胡乱看看又少很多,中间空好大一块绿色,好那啥……
刚发完上面评论,页面刷新时候直接跳得那里,吓我一跳
早上到公司看到新版了,提到密码试探的问题,赶紧升级了。不过你这个跨度是相当大,辛苦
恭喜下!表要说我是英雄嘎!
看来升级还是要趁早,哈哈。。。
首页只显示了第一篇文章,其他的内容都没有显示,且保持着“正在加载”的提示。
Windows XP + FF 3
问题已经解决了,多谢!
不错,终于升级了
不过我还在想什么时候升级…现在还是2.6…
对于臃肿的wp越来越有些无语了
臃肿其外而丰盛,紧凑其中而极速 = wp+jQuery+super cache
嗷嗷,你可以去下个Wordpress Automatic Upgrade插件,再下个WordPress Database Backup就可以备份数据库叻,你开心网帐号多少,mail一下给我,嘿嘿
一次跨越这么多次升级,aw太有才了
aw还用自己的服务器啊,厉害啊
靠哇,我啥时候升级成“老师”了那?!
此老师乃传到授业解惑之老师,非骗钱混饭之老师。
谢谢诶,去升级了
兄弟。你的博客模板很好看。能发一个给我吗?我的email:my321@yahoo.cn
恭喜,终于升级成功了
这个游戏十分的刺激啊……
不用废话, 崇拜下你..
懒成这个样子.. 难道你是想向 Realazy 看起么??
我地妈~~~呀~~~~
太·~~~~~ 刺激了 ~~~~~
是频频地改动 不是感动 纠错
aw是错别字大王…aw是错别字大王…
我错了~
感激不尽:)
你还一下跳了好几级啊~~~
嘿嘿,我居然上榜了,继续努力!!
继续测试一下评论。
真复杂,玩不来