Category Archives: the BLOG

折腾WordPress的Media Library在迁移后不显示图片的故障

用WordPress自带的migration tool迁移到新服务器,会遇到这样的问题:虽然之前上传的照片都已经拷贝到wp-content/uploads目录下,但是在Media Library下,这些照片都无法正常显示,原因是有两张表的数据没有导过来:wp_posts和wp_postmeta。

搞了半天,才找出解决办法。

首先,在旧服务器,导出所有attachment类型的posts:

sudo mysqldump wordpress wp_posts --where="post_type='attachment'" > wp_posts.sql

导出所有与attachment有关的wp_postmeta记录:

sudo mysqldump wordpress wp_postmeta --single-transaction --where="post_id in (select id from wp_posts where post_type='attachment')" > wp_postmeta.sql

之后,将两个sql文件上传到新服务器,并导入对应数据库:

mysql -u root -p wordpress < /home/wp_posts.sql

mysql -u root -p wordpress < /home/wp_postmeta.sql

这个方法存在一个问题:导出的记录的id可能在新实例中的表里已经存在了,这就很麻烦了,一个办法是,在sql文件里手动改掉冲突的id;另一种就是放弃所有冲突的id(在sql文件手动删掉对应的脚本)。我在wp_posts里使用手动改id的方法,因为一共只有四五条记录冲突;而在wp_postmeta表,我采用了批量修改新插入记录的ID后导入。具体方法是,首先在新实例的数据库上执行

select max(meta_id) from wp_postmeta;
+--------------+
| max(meta_id) |
+--------------+
| 15840 |
+--------------+
1 row in set (0.00 sec)

找出当前wp_postmeta表最大ID,然后用文本编辑器打开wp_postmeta.sql,查找”),(“,替换为”),(15840+”,也就是在原ID的基础上自增15840,以保证新ID不存在。当然,脚本第一条记录由于不符合”),(“的格式,所以需要手动修改为(15840+”。完成以后,放到服务器上导入,问题顺利解决。

theBLOG三岁啦!

有历史记载的第一篇日志,发表于2006年3月,距现在已经整整三个年头了。
留言的朋友来了又走了,而我也已经不再是三年前的那个我了。
 
恩。回头统计一下,看看留言最多前三位的,分别是谁。呵呵。
 
先有奖竞猜一下哈。。。

  1. theBLOG的第一篇日志,发表于哪一天?
  2. theBLOG的第一篇评论回复(除了Alex发表的),发表于哪一天?是由谁发表的?
  3. theBLOG发起的第一次集体活动,是去哪里玩?哪一天?
  4. theBLOG的域名(现在是www.hi-alex.com)原先是什么?
  5. theBLOG曾经使用过的样式(三色杯配色,07新春配色),谁还有截图保存吗?
  6. theBLOG上留言最多的三位朋友(除了Alex),分别是谁?
  7. 容我再想想。。。

 
2006年4月25日的样子
2006年8月29日的样子

New Flickr-like Pagination

总算下决心花了一番心思,研究了一下Delicious的分页策略,在一个又一个的if condition之后,终于搞出了个大样。虽然说肯定会有这样那样的bug,但是总比以前那个朴素唯物主义的分页来的帅气和靓丽得多。

theBLOG 改版预览流出

好吧。。。我承认,一成不变的界面让我觉得有些厌烦。。。

那么就改变一下吧。虽然Header还比较素颜,但是整体上来说,相信应该有不少人会对这个界面觉得非常眼熟吧