一般情况下,做网站会有很多的需求,例如学做网站,主站是用 WP 程序做的门面信息网站,培训区却是 DZ 论坛,这二个不同的程序做的不同内容的网站,WP 与 DZ 论坛如何整合呢?

方法一:

虽然 WordPress 调用 Discuz 的方法多种多样,但是这里提供的方法是最好也是最有效的方法,代码如下:

<?php
//截取 utf8 字符串
function utf8Substring($str, $from, $len){
return preg_replace('#^(?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$from.'}'.
'((?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$len.'}).*#s','$1',$str);
}
//建立数据库链接
$conn = @mysql_connect("localhost", "数据库用户名", "数据库密码") or die("数据库链接错误");
//指定要链接的数据库
mysql_select_db("数据库", $conn);
//使用 UTF-8 中文编码;
mysql_query("set names 'UTF-8'");
//指定版块的所有文章中取 10 条最新帖子
$SQL="SELECT tid,subject FROM 表名 where fid in (2,37,38,39,40,41,42,43,44,45) ORDER BY tid DESC LIMIT 0,10";
$query=mysql_query($SQL);
//循环显示结果
while($row=mysql_fetch_array($query)){
echo "<li><span><a title=".$row[subject]." href=http://www.seo-adwords.org/seo-adwords-".$row[tid]."-1-1.html target=_blank>".
utf8Substring($row[subject], 0, 40)."</a></span></li>";
}
//关闭链接
mysql_close($conn);
?>

就是这样调用出来的,这样就可以到 WP 网站首页进行查看,可以调用出 DZ 论坛的内容了。如果调用的时候出现了错误试着把上面代码的如下部分删除就可以了。

//关闭链接
mysql_close($conn);

方法二:

要完成的整合工作主要是用户整合,另外还有在 WordPress 上显示 Discuz 的论坛新帖。

先看一下相对简单的论坛新帖显示功能,这有两种实现方案,一种是通过 WordPress 的 Feed 函数,另一种就是用 Discuz 的 Javascript 代码。
用 Feed 很简单,在你要显示的地方加入下面的代码就可以了:

<!--p
require_once(ABSPATH . WPINC . '/rss.php');
wp_widget_rss_output('https://www.weixiaoduo.com/feed', 'items=10');
?>

如果想用 Discuz 的 JS 代码,要先到 DZ 中设置一下,在 Discuz 的后台通过工具-> 数据调用来添加一个主题列表调用模版,然后把生成的 JS 代码复制到需要的位置即可。

现在看看用户整合这方面。要求是用户在 WP 用 Discuz 的用户名来登录,也就是用户注册的号在论坛和 WP 之前都可以用,然后用户必须在 WordPress 登录后才能留言。

刚开始的想法是让 WordPress 的注册页面和登录页面调用 Ucenter 的 API,所以看了一个小时的 Ucenter 参考手册,发现实现起来也比较容易,而且 Ucenter 中的 sample 已经实现了相应的功能。