discuz是一套稳定成熟的论坛系统,但是为了SEO方便,很多时候需要生成sitemap网站地图,可惜discuz没有原生提供这一功能,很多插件也不是很自由,关键有的还收费!
其实sitemap很简单,直接罗列文章内容页和帖子内容页的页面地址就可以了,TXT格式一行一个不拖泥带水,XML格式的反而不美。所以,直接生成一行一个的网站地图最简单高效。话不多说,代码如下:
<?php
define('APPTYPEID', 1);
define('CURSCRIPT', 'sitemap');
require './source/class/class_core.php';
$discuz = & discuz_core::instance();
$discuz->cachelist = $cachelist;
$discuz->init();
$querys = DB::query("SELECT aid FROM ".DB::table('portal_article_title').' ORDER BY aid DESC');
$data = '';
while($articleaid = DB::fetch($querys))
{
$aurl = "{$_G[siteurl]}article-{$articleaid['aid']}-1.html";
echo $aurl;
$data = $data.$aurl."\n";
echo "<br/>";
}
echo "<br/>";
$querys = DB::query("SELECT tid FROM ".DB::table('forum_thread').' WHERE displayorder=0 ORDER BY tid DESC');
while($threadfid = DB::fetch($querys))
{
$furl = "{$_G[siteurl]}thread-{$threadfid['tid']}-1-1.html";
echo $furl;
$data = $data.$furl."\n";
echo "<br/>";
}
$fp = fopen('sitemap.txt',"w+");
fwrite($fp,$data);
fclose($fp);
?>说明一下,上面生成的页面是伪静态的地址,没有使用伪静态的朋友可以把格式改成动态的就OK了。