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

建站经验
没钱没技术,站长应该如何运营网站(二)
谈谈我自学网站开发的经历 让大家少走些弯路
对于站长来说 最可悲的莫过于选择放弃
把老乡们聚集起来 SNS应用又一发展路径
牛人站长曝高招 让你的网站排名暴升
挖掘网站另一层次的记忆
Z-Blog防治垃圾留言的策略
五大威客网站观测:2009年会找到蓝海吗
网络销售技巧分享 站长必学哦
站长如果对现状很无奈 先静下心想一想
网站建设要区分不同地域与文化的受众
建站经验之谈三:广告位难卖的冷性思考
教你如何牢牢抓住网站运营的命脉之流量
谈谈网站原创的重要性和推广重点
SNS时代到来,SNS旅游社交平台展露头角
一个小说网站站长的十六个建站经验
推广技巧篇:迅速让你的论坛变的火爆起来
做成功社区论坛必须了解的十条规则
如何成为一个成功的站长
改善用户体验注重前期引导 SNS网站秘籍

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 167 ::
收藏到网摘: 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)