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

 

http://blog.epinv.com/post/264.html

 

2011年10月29日 BY 北极寒流

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 class=titlel><a class=title title=”.$row[subject].” href=http://www.seo-amoy.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);

来源:http://www.seo-amoy.com/seo/seo-12-1-1.html
注:我自己利用这段代码,发现调用出来的中文文章乱码,后来把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 class=titlel><a class=title title=”.$row[subject].”href=http://www.pmpwhy.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函数转码。这里我就不再多花时间说明了

来源:http://soho.emegami.com/computer/wordpress-call-phpwind-discuz-posts/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值