随着wordpress 2.3-2.5的释出,本博客原来挂的一个wp-forum论坛被指出有安全漏洞,前一阵较忙也懒得打理,只是关闭了事,最近闲来“论坛癖”发作,遂改成WP-Forum Plugin Security Bulletin文中提出的simple forum方案,去官网一看,已经有simple forum的3.0.3版本,名字也改成了simple:press forum(下简称sf)
sf的功能相较于wp-forum更为强大,而且作者也在不断更新(不像wp-forum的作者已经人间蒸发很久了),因此能比较快于相应用户的需求。下面列一些sf较为特色的功能:
- 支持游客发帖,只需象wordpress游客发帖时那样留下名字,邮箱即可(邮箱主要用于gravatar头像)
- 支持用户自传头像,同时也支持gravatar 2插件自动整合
- 支持high slide 图像在帖子页内放大显示
- 支持站内PM(短消息)
- 支持更多的admin操作,如用户组分类,论坛访问权限等等
- 支持博客文章和论坛文章之间的自动互贴(这一点和我原来想要的功能完美吻合)
转换也相当的简单,第一步是将sf插件上传,激活后不做任何改动,即不要建任何用户和论坛分组,第二步将sf官网给出的转换程序插件上传至plugin目录激活后,一步一步按提示操作就可以了。
这里特别再提一下转换出错时的处理方法:转换程序可以说已经想的颇为周到了,但由于对中文的处理方式不熟悉,还是可能出错的,我在转换时就碰到了问题。
首先,在转换过程中出错后,请将数据库中prefix_sfgroups,prefix_sfforums,prefix_sftopics,prefix_sfposts四张表清空后再转(这里的prefix对应您数据库中的wordpress表名前缀),因为转换到一半的时候,这些sf的表中已经有部分数据了,再转会出现键名重复错误。
其次,我在转换中遇到topic转换的错误,分析错误信息发现,wp-forum的主题(thread)在转换到sf的topic时,会插入一个叫targettopicslug的字段(也就是主题别名),而此字段是不能有重复的,因为wp-forum中没有这个字段,转换程序试图将原主题名字编码后循环+1来自动产生,这在英文方式下是没问题的,但是到了中文状态的长主题名下就有问题了,而我原论坛的一个帖子碰巧就有这个问题了,再看wp-forum的thread表,其中的ID字段是唯一且不重复的,那就拿来用做sf的slug主题别名吧。查找修改如下
1.找到wpforum-to-sf-converter.php中的// move over the topics部分,可以看见调用了mpc_write_topic函数

2.找到mpc_write_topic函数,将$targettopicslug变量注释掉,并放在函数外部参数表,以供接下来调用函数时传入

3. 回到mpc_write_topic函数调用处,将wp-forum中的id作为参数传入,就保证了$targettopicslug的唯一性。

最后在顺利转换完成的情况下,在查看sf的说明文件,进行建其他的子论坛及用户和用户权限等常规操作。
至于sf的其他属性,就慢慢玩吧
—阅读本主题的博客原贴
最新评论