一般情況下,做網站會有很多的需求,例如學做網站,主站是用 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 已經實現了相應的功能。