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