当前位置: 首页 > 图文教程 > 网站运营 > 建站经验 > 用 WordPress 做 CMS 的一些笔记

建站经验
经验探讨 用户体验与搜索引擎优化的结合
让你的网站产生Google Sitelinks的六个要素
凸显使用体验 网站导航最受美国厂商关注
外国人眼中网站设计和网站建设二十个原则
网站更换域名应该注意的八个方面
五年经验告诉你 细节决定网站成败
新网站如何提高流量
稳中求升 购买付费链接应注意的九个问题
经验越多下手越难 你能抛弃你所学习的吗
站长进行设计网站时必须注意二十三个方面
路径突破 谈谈英文站比中文站更能做成功
谈谈网站运营中的关键的一环 团队的管理
最原始的东西最有价值 致天下所有创业者
名博怎样练成 析月光博客成功的六个原因
学生站长持续自己的冬天 仍坚守春天的期待
关于对web的分析 获得可行动的认识和度量
五个月前后五次改动 让我的流量稳在五万
亲手关闭自己论坛 泣血奉献一些心得经验
用户体验指导思想 易用友好 把用户当傻瓜
网站如何将用户体验与搜索引擎优化相结合

建站经验 中的 用 WordPress 做 CMS 的一些笔记


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 159 ::
收藏到网摘: n/a

这些日子搞了搞 WordPress,确实是一款很好的 blog 系统。安装配置简单,编辑界面优秀,有插件系统。使用方便,速度也还可以,挺适合做 CMS。下面记录的是我在安装配置过程中遇到的一些经验教训。

Windows Live Writer

既然要做 CMS,我认为最拉风的,恐怕要算是 Windows Live Writer 的支持了。有了桌面编辑器的支持真可谓如虎添翼,插图等等操作真是信手拈来,这是任何基于 HTML 的编辑器无法比拟的。

只是在使用过程中,我发现 WLW 上传的图片没有正确地和文章关联起来。尽管 Role Scoper 的 Attachment Utility 可以帮助我们重新建立起文章和图片的关联,但是建起来的关联非常不美观,重新生成了很多附件项目,而原来的未连接的附件项目依然存在。那就有可能在清理附件的时候发生不小心把有连接的附件清除的事故,再说一个附件两个项目看起来也非常不美观。有没有办法让 WLW 上传的附件自动关联上呢?

我在网上搜了一下,找到了答案。

Issue with Live Writer and Attaching Images on 2.8

那里解释说,问题在于 WordPress 2.8 做了一个数据库模式上的变动, signed 变成了 unsigned,所以原来在 xmlrpc.php 里的 -1 都不奏效了,真正在数据库里形成的数据是 0。这个问题会在 2.9 里修正。目前的解决办法是:在 xmlrpc.php 里找到如下行,

$attachments = $wpdb->get_results( "SELECT ID, guid FROM {$wpdb->posts} WHERE post_parent = '-1' AND post_type = 'attachment'" );

把其中的 ‘-1’ 改成 ‘0’。

主题

WordPress 2.8 的默认主题,日期显示总是有问题。无论用户怎么选择的,都是它自己的时间格式,不符合国际化的要求。

我改用了 Precious 主题,效果很好。

插件

Role Scoper

CMS 的一个必要条件,是权限控制。 Role Scoper 这个插件就是干这个的。我的做法是这样的:

创建一个分类 (category) C1,创建一个组 (group) G1

在 Restrictions/Categories 下面把 C1 配置为受限制的 (restricted)

在 Roles/Categories 下面把 G1 分配为 C1 的 Post Editor

这样就实现了只有 G1 的用户才能浏览、修改 C1 分类下的帖子,实现了内部资料的目的。

最后,如果要实现对附件的权限管理,还要开启 permalink。这在 Roles/Options 下面有说明。

Role Scoper 有个 bug,导致了 Windows Live Writer 选择打开命令时不能浏览到正确的文章。经过几个小时的试验,我发现在 cap-interceptor_rs.php 文件中大约 400 行处 flt_user_has_cap 函数中,有一个对于生成 $listed_ids 的优化处理在 xmlrpc 的情况下会出错。加上一个条件,让它在 xmlrpc 的情况下不生效即可。具体修改如下,其中 defined(‘XMLRPC_REQUEST’) 为添加的条件:

if ( defined('XMLRPC_REQUEST') || ! isset($hascap_object_ids[$src_name][$object_type][$capreqs_key]) ) {
...
} else ...

Avatar

这个插件允许用户自己上传头像,而不必引用 gravatar.com 的资源。

Sidebar Login

这个插件是首页的一个 widget,允许用户在那里登录,而不必记住管理页面的地址。首页登录对 CMS 的可用性至关重要。(作者:Jackqq)