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

建站经验
浅谈互联网建站的粘性营销
像经营企业一样经营你的网站
李智:如何构建Web2.0的网购商城
从QQ网站域名引发对域名意义的思考
Dedecms站长必看:织梦官方安护设置心得
114么导航网建站日记(回忆篇)
国内特色UChome社区 别具特色的发展之路
地方类网站要善于从周围环境中寻找发展机会
个人站长做网站赚大钱六大绝招
分享本人做过的两个地方站的线下推广和运营
利用谷歌分析工具追踪YAHOO PPC广告活动
小游戏网站发展的关键:精确定位 不断创新
HiShop5.2功能亮点之商品管理
老站长谈一次收链接感想
浅谈更新内容时间把握的重要性
浅谈新手建站选择CMS程序时需要注意什么
使用Google Analytics 将内容分组分析
老站长教你安全收链接
老站长教你找高质量的免费空间
建站三个月后我把标题关键字描述改了

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


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