陈大叶的个人网页

    查看: 351|回复: 0

    DiscuzX 3.x自己制作生成网站地图sitemap,几行代码就搞定了!

    [复制链接]

    900

    主题

    906

    帖子

    3287

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    3287
    发表于 2019-6-15 11:08:53 | 显示全部楼层 |阅读模式
    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了。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    陈大叶的个人网页 ( 苏ICP备19026772号-2 )

    GMT+8, 2024-12-22 19:17 , Processed in 0.054476 second(s), 17 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表