WordPress调用Discuz论坛文章最符合SEO的方法

WordPress调用Discuz论坛文章最符合SEO的方法。WordPress对于广大博主来说应该都很了解了。WordPress是世界上使用最多的搭建博客的开源程序,很多个人独立博客都是用WordPress的。有时候自己弄了一个博客,又折腾了一个Discuz论坛,就想把Discuz论坛的文章能在wordpress上展示出来。这样调用论坛里面的帖子可以达到全站更新的目的。虽然Discuz提供了JS调用方案,但是大家都知道,JS调用是非常不符合SEO优化的,调用过来的东西搜索引擎抓取不到,对你的wordpress网站是没有任何用处的。
虽然WordPress调用Discuz的方法多种多样,但是这里提供的方法是最好也是最有效的方法,我们把它称为WordPress调用Discuz的终极方法。代码如下:

<ul>
<?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 (版块1,版块2……) 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.vpsko.com/seo/seo-".$row[tid]."-1-1.html target=_blank>".
utf8Substring($row[subject], 0, 40)."</a></span></li>";
}
//关闭链接
mysql_close($conn);
?>
</ul>

如果调用的时候出现了错误试着把上面代码的如下部分删除:

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

注:我自己利用这段代码,发现调用出来的中文文章乱码,后来把mysql_query("set names 'UTF-8'"); 改成mysql_query("set names 'UTF8'");
解决问题。

附录的另外一段代码

<ul>
<?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.vpsko.com/thread-".$row[tid]."-1-1.html target=_blank>".
utf8Substring($row[subject], 0, 40)."</a></span></li>";
}
//关闭链接
mysql_close($conn);
?>
</ul>

 

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

动手前,需要确认两项: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函数转码。

weinxin
VPSKO.com
承接的项目主要包括WordPress博客主题、WordPress CMS主题、WordPress企业主题、WordPress外贸主题、WordPress淘宝客主题定制
VPSKO官方淘宝店
avatar
原创设计Wordpress企业精品主题高端大气自适应网站源代码带SEO
机械定制Wordpress主题正品企业模板网站高端大气自适应带手机版
Wordpress模板正版高端大气自适应企业主题源代码带手机版 Wcloud
WordPress 响应式网址导航主题 Hao123

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: