|
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);
- ?>
[color=rgb(51, 102, 153) !important]复制代码
说明一下,上面生成的页面是伪静态的地址,没有使用伪静态的朋友可以把格式改成动态的就OK了。
|
|