WordPress的一些小缺点


WordPress 2.6发布了,说实话我并不是很喜欢这个版本。虽然WordPress 2.6增加了一些新的功能,对安全性方面也有了一定的提升,例如对SSL支持等,但是它对数据库的整洁来说,还是一团糟。

新版中增加的一个重要功能是Post Revisions(文章的版本控制),作者可以对比查看文章的不同版本,并恢复到以前的状态。但是,文章的不同版本,数据库中该放在哪里呢?答案是wp_posts。默认状态下,所有的实质内容都记录在这个数据表中,包括文章、图片视频音频等信息。而wp_posts的PRIMARY KEY为ID,于是一篇文章常常要占用3个不同的ID,它们记录了文章的3不同状态Current Revision、Autosave、Revision,也就是当前版本、自动保存的版本还有以前的版本,如果修改过多次,就会出现revision-2,revision-3…  于是乎,文章的Id不再连续了,特别是Permalink结构为archives/123形式的博客,上一篇为archives/100,当前这一篇可能就是archives/105了,看起来是相当的乱啊。

WordPress真的很吝啬,这么多版本过来了,数据表的数量仍然是10个,我想只要增加几个数据表,WP的数据就不会显得那么凌乱。本人并不提倡像ExpressionEngine这样,数据表多达68个,但20个以内并不过分吧。

个人建议增加的数据表有:

  • wp_temp:存储临时文件,如wp_options中的rss内容、wp_postmeta中的edit_lock和edit_last
  • wp_plugin:存储插件的配置信息,这样就不至于因为安装太多插件而把wp_options弄得一团糟
  • wp_revision:用来记录文章的旧版本及自动保存的内容

这样,只要做一下简单的清理,数据库就显得有条有理了。

WordPress的其它问题还有
1. 数据表wp_options中category_children、rewrite_rules的option_id总是不断改变
2. 如果你编辑过WordPress目录下的.htaccess,只要进入Settings - Permalinks,即使没有点击”Save Changes”,.htaccess也会追加以下内容:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress

这极易导致服务器500错误。建议安装后WordPress后,将.htaccess文件的属性改为只读。

WordPress的功能是越来越强大了,伴随而来的是文件体积的增长,现在的wordpress-2.6.zip都已经1.44MB了。有时候我在想,我只不过想要一个简单的blog程序而已,有必要用一个庞然大物吗。有点期待Sablog 2.0的到来,只是小A迟迟不发布,难道要等到传说中的奥运?

Update:经williamlong的提醒,原来Post Revisions是可以禁用的,只要在wp-config.php文件中增加一行define(’WP_POST_REVISIONS’, false);就可以了,williamlong说得对,应该在设置中增加启用/禁用选项,毕竟类似Wiki那种文章历史版本控制对一般的Blogger来说没多大意义。

作者: Freeman | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://snsnow.com/blog/shortcomings-of-wordpress/

Tags: ,

» You can leave a comment, or trackback from your own site.

There are No comments.

发表评论

带 " * " 的为必填选项.