首页 > 春风满楼 > wordpress调用phpwind或discuz论坛指定版块帖子
2016
08-22

wordpress调用phpwind或discuz论坛指定版块帖子

这两天在忙wordpress和phpwind的整合,解决了账号互通的问题,ucenter我鄙视,他的缺点太多了,并不适合大多数人的需求。
今天刚好涉及到wordpress调用论坛帖子的问题,已经成功实现,趁热打铁和广大开源爱好者分享我的成果。
动手前,需要确认两项:
1、wordpress和phpwind是否公用一个数据库;
2、使用的字符集编码是否一致。

这里我的情况是,wordpress和phpwind各用一个数据库,用的都是UTF-8字符集。如果看这篇文章的你和我情况不一样,请酌情修改。

$connbbs = mysql_connect("localhost", "数据库用户", "数据库密码") or die("数据库链接错误");
mysql_select_db("数据库名", $connbbs);
mysql_query("set names 'UTF8'");
$sql = 'SELECT `tid`, `subject` FROM `pw_threads` WHERE `fid` in (1,2) ORDER BY tid DESC LIMIT 0,10';
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
echo "<li><a href=http://论坛地址/read.php?tid=".$row[tid]." target=_blank>".$row[subject]." </a></li>";}
mysql_close($connbbs);

我这里是调取的论坛版块ID=1和2的最新贴10篇,phpwind数据库表使用的默认前缀pw_,使用时候根据自己需要修改相关参数。
如果wordpress和phpwind在同一数据库内,那就更方便了,可直接使用wordpress自带的wpdb操作数据库。

$bbsposts = $wpdb->get_results('SELECT `tid`, `subject` FROM `pw_threads` WHERE `fid` in (1,2) ORDER BY tid DESC LIMIT 0,10');
foreach($bbsposts as $bbspost) {
echo('<li><a href=http://论坛地址/read.php?tid=' . $bbspost->tid . ' target=_blank>' . $bbspost->subject . '</a></li>');

以上就是phpwind指定版块的最新贴调用方法,接下来说一下discuz的调用,非常简单,改一下那句SQL。

'SELECT `tid`, `subject` FROM `pw_threads` WHERE `fid` in (1,2) ORDER BY tid DESC LIMIT 0,10'

修改成

'SELECT `tid`, `subject` FROM `cdb_threads` WHERE `fid` in (1,2) ORDER BY tid DESC LIMIT 0,10'

同时把“http://论坛地址/read.php?tid”修改为“http://论坛地址/viewthread.php?tid”。至此大功告成!
字符集编码不一致,可以用使用iconv函数转码。

觉得文章有用,微信打赏一元。