整合Wordpress和Discuz用户数据

[email protected] 的毕设需要一个cms加一个用户讨论的网站,架设这东西的重任就交给了我,她负责页面设计,也就是真正毕设需要的东西

国内有很多cms系统,比较熟一点的应该是verycms,这是phpwind曾经开发的,以前还在家园时,后台整改就用了这个系统,不过此系统后来夭折了,停止开发,貌似在官网连个最后版本的下载都没了 :OO!:

其他cms没用过,[email protected] 又需要快速完成这个任务,选用wp是最方便的,她熟悉wp的主题制作,cms系统就这么定了,而用户讨论习惯性的使用了论坛

bbpress是和wp同公司出品的,整合数据是必然的,但是功能过于简单,而且可能也不符合国人使用习惯,放弃,还是选用了dz,可用户数据整合便成了问题,开始想这个可能要修改程序,我个菜鸟搞不定了。。。 :OoO:

后来Google大神告诉我其实没那么复杂,已经有人开发了插件,非常方便,那么接下来就进入正文吧,wp与dz的用户数据整合

在网上找到了一款整合插件 Discuz Integration,并且这个插件已经被官方插件库收录,点击进入插件页面

但是这个插件仅仅只是查找论坛的用户数据,也就是说插件的功能是:

在用户登录wp的时候,自动查找dz论坛的用户数据,如果有同名用户则在wp里也添加此用户为订阅者,从而达到了用户同步
但是问题就在于这里,这个同步是单向的,如果你的wp开发了注册,在wp里注册的用户是无法在论坛登录的,这就悲剧了。 :%-%:

但是此次建站仅是为了毕业设计,我当然偷懒找了最简单的解决方法,把wp设置为禁止注册,然后添加一个注册链接跳转到论坛的注册页面,也就是说只有一个注册入口,只能从论坛注册

经测试,wp设置为禁止注册后,登录论坛注册的账户仍能正常向wp添加用户,因为它是直接向数据库写数据的,不经过wp程序判定

但是同步过程也出了点小问题,由于我是先安装好了wp还有论坛的,再装了这插件,插件没有任何设置界面,启用后,打开登录页面,被警告无法读取数据库

于是检查了插件的代码,代码简单到只有51行,其中还有8行注释。。。。。 :o.o:

1
2
3
require_once( ABSPATH . WPINC . '/registration.php');
$dz_prefix = 'uc_';
$members_table = $dz_prefix . "members";

查看到上面的代码,插件只是在注册登录页面读取,然后查找表里的uc_members,问题就处在这里,我的wp和dz分别使用了两个表,如果不锈钢这个插件则需要重装一次论坛,使用wp的表,论坛我刚安装,重装非常简单,只要删除install.lock,再顺着点一次下一步就搞定,可是看了下现在7.2版本的dz,那个表里那么多个项。。。。把它放到和wp同一个表,我有些抓狂

不过找到了Discuz的另一个产品UCenter,这是个用户中心,用来整合康盛创想的所有产品的,我把这东西也装了一个,很小,使用了wp的表,里面也有members项,结构和dz论坛的一样,当dz注册用户时,同时会向UCenter的members写入数据

这样再尝试了一次数据,搞定了,读取数据正常,dz的注册用户完全可以在wp登录了

现在还有最后一个问题,那就是dz可以注册中文用户名,可是wp不可以,不过这个问题的解决办法也是相当简单,装个插件就好,我安装了Chinese Login Name,点击计入插件页面

结束,一切就那么简单,开始还把这问题想的很恐怖,不过这也仅仅是个假同步,但这次就这么搞定了,此文仅做个记录,根本算不上教程啊 :6i6:

声明: 除非注明,小峰网络遨游记文章均为原创,转载请以链接形式标明本文地址

本博客原创文字只代表本人某一时间内的观点或结论,与本人所在公司没有任何关系。

本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

第三方若用于商业用途的转载,须取得本人授权。

本文作者:

本文地址:http://xfeng.me/integration-wordpress-and-discuz-user-data/

你可能还对下面文章感兴趣: