请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 160|回复: 0

[技术分享] Discuz!自动生成网站地图sitemap.xml文件。

[复制链接]
  • TA的每日心情
    郁闷
    2024-6-11 19:06
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    升级   100%

    36

    主题

    3

    回帖

    716

    积分

    管理员

    积分
    716

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    发表于 2024-5-22 18:47:46 | 显示全部楼层 |阅读模式
    导读:
    sitemap.xml网站地图可以加速百度等搜索引擎的收录,对于Discuz!来说,每天可能都会发布新的帖子和文章,如果使用手动生成站点地图文件的话,会非常的麻烦,现在教大家一个全自动生成的方法。可以同时生成sitemap.xml和sitemap.txt两种类型的文件。

    1、创建一个cron_sitemap.php文件,代码如下:
    1. <span style="background-color: white;"><font color="#008000"><?php
    2. /*
    3. * $ 自动生成网站地图sitemap.xml
    4. * 1、discuz后台添加定时任务:后台–工具–计划任务–新增,名字随便,提交
    5. * 2、然后编辑,任务脚本:cron_sitemap.php
    6. */
    7. if(!defined('IN_DISCUZ')) {
    8.         exit('Access Denied');
    9. }
    10. $cfg_updateperi='60';//协议文件更新周期的上限,单位为分钟
    11. $CHARSET='gbk';// 选择编码方式:utf-8 or gbk
    12. /******************************************自动生成网站地图****************************************************/
    13. $txtContent = '';
    14. $sitemap="<?xml version="1.0" encoding="UTF-8"?>\n";
    15. $sitemap.="<urlset\n";
    16. $sitemap.="xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> \n";
    17.         //1.文章
    18.         $queryArticle = DB::query("SELECT aid FROM ".DB::table('portal_article_title').' ORDER BY aid DESC');
    19.         while($articleaid = DB::fetch($queryArticle)){
    20.             $link = "{$_G[siteurl]}article-{$articleaid['aid']}-1.html";//注意静态规则
    21.                 $txtContent .= $link."\n";
    22.                 $t=time();
    23.                 $riqi=date("Y-m-d",$t);
    24.                 $priority=rand(1,10)/10;
    25. $sitemap.="<url>\n";
    26. $sitemap.="<loc>$link</loc>\n";
    27. $sitemap.="<priority>$priority</priority>\n";
    28. $sitemap.="<lastmod>$riqi</lastmod>\n";
    29. $sitemap.="<changefreq>weekly</changefreq>\n";
    30. $sitemap.="</url>\n";
    31.     }
    32.         //2.帖子
    33.     $queryThread = DB::query("SELECT tid FROM ".DB::table('forum_thread').' WHERE displayorder=0 ORDER BY tid DESC');
    34.     while($threadfid = DB::fetch($queryThread)){
    35.                 $link = "{$_G[siteurl]}thread-{$threadfid['tid']}-1-1.html";//注意静态规则
    36.                 $txtContent .= $link."\n";
    37.                 $t=time();
    38.                 $riqi=date("Y-m-d",$t);
    39.                 $priority=rand(1,10)/10;
    40. $sitemap.="<url>\n";
    41. $sitemap.="<loc>$link</loc>\n";
    42. $sitemap.="<priority>$priority</priority>\n";
    43. $sitemap.="<lastmod>$riqi</lastmod>\n";
    44. $sitemap.="<changefreq>weekly</changefreq>\n";
    45. $sitemap.="</url>\n";
    46.     }
    47.     $sitemap .= "</urlset>\n";
    48.         //写入xml文件
    49.     $fp = fopen(DISCUZ_ROOT.'/sitemap.xml','w');
    50.     fwrite($fp,$sitemap);
    51.     fclose($fp);
    52.         //写入txt文件
    53.         $fopen = fopen(DISCUZ_ROOT.'/sitemap.txt',"w+");
    54.     fwrite($fopen,$txtContent);
    55.     fclose($fopen);
    56. ?></font></span>
    复制代码

    2、将cron_sitemap.php上传到source/include/cron目录

    3、进入discuz!后台  → 工具   → 计划任务,添加如下计划:


    4、添加好后,记得把可用按钮勾选上


    5、任务执行后,会在根目录同时生成sitemap.txt和sitemap.xml两个文件


    结束



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×
    传奇单机社区免责声明

    1、传奇单机社区所有资源均来源于互联网网友交流发布,并非本站制作,所有个人言论并不代表本站立场,与本站立场无关,本站不会对其內容负任何责任。若无意中侵犯到您的版权利益,敬请来信联系我们,我们将及时进行处理,并致以最深的歉意。

     

    2、传奇单机社区中所有资料、资源文件均来自于网络搜索,仅作为技术学习研究以及单机娱乐之用,请必须在24小时内删除所下载文件,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。

     

    3、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!

     

    本站联系信箱:93635993@qq.com

    点击右侧快捷回复。 传奇单机社区感谢你的支持!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    网站统计|网站地图| ( 蜀ICP备2023020120号-3 )

    GMT+8, 2024-7-17 20:24 , Processed in 0.062908 second(s), 24 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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