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

建站经验
11个PR7以上的国内网址导航站
国内现状 目前没几个博客能赚钱
网站推广最重要的2点 细节和坚持
给想通过博客赚钱的站长朋友的一些建议
网络推广经验 前期准备和发帖原则
盈利模式 细分市场是站长梦开始的地方
把握博客更新时间
总结网站推广中需要避免的12种推广方式
淘宝网店推广重点 抓住潜在的购买客户
建站杂谈 2010年web领域的预测
给用户一个无法拒绝的回访理由
建站案例 地方门户网站运营的心酸事
制作英文网站的基本流程
网站备案 图文教程
独立域名的英文博客从WordPress切换到Blogger的步骤
大胆尝试电子商务 改变传统盈利思路
404页面设计全攻略
以收购网站为名的商业间谍不可不防
运营企业网站来实现营销目标的经验
淘宝的站内搜索能改变搜索格局?

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


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