本站公收录50年前的影片
 找回密码
 立即注册
快捷导航
搜索
回复: 0

Discuz! 网站免插件使用定时任务自动生成sitemap.xml文件

[复制链接]
发表于 2025-2-7 19:25:44 | 显示全部楼层 |阅读模式
网上转载的,具体没测试。

一、新建 php 文件,命名为:
  1. cron_sitemap_generator.php
复制代码


添加内容:(有三种格式)
1、纯论坛帖子
  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.         exit('access Denied');
  4. }

  5. $filename='sitemap.xml';
  6. //以下五项根据具体情况修改即可
  7. $cfg_updateperi='60';//协议文件更新周期的上限,单位为分钟
  8. $web_root=$_G['siteurl'];//根网址
  9. $CHARSET='utf-8';// or gbk //选择编码方式
  10. /***********************************************************************************************/
  11. //网站地图sitemap.xml
  12. $sitemap="<?xml version="1.0" encoding="UTF-8"?>\n";
  13. $sitemap.="<urlset\n";
  14. $sitemap.="xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"\n";
  15. $sitemap.="xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n";
  16. $sitemap.="xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9\n";
  17. $sitemap.="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">\n";
  18.     $querys = DB::query("SELECT a.tid FROM ".DB::table('forum_thread')." a inner join ".DB::table('forum_forum')." b on a.fid=b.fid ORDER BY a.tid DESC  LIMIT 0,10000");
  19.     while($threadfid = DB::fetch($querys))
  20.     {
  21.             $turl=$web_root.'thread-'.$threadfid['tid'].'-1-1.html';//注意静态规则
  22.         $link = $turl;
  23.                 $t=time();
  24.                 $riqi=date("Y-m-d",$t);
  25.                 $priority=rand(1,10)/10;
  26. //date("D F d Y",$t);
  27. $sitemap.="<url>\n";
  28. $sitemap.="<loc>$link</loc>\n";
  29. $sitemap.="<lastmod>$riqi</lastmod>\n";
  30. $sitemap.="<changefreq>hourly</changefreq>\n";
  31. $sitemap.="<priority>$priority</priority>\n";
  32. $sitemap.="</url>\n";
  33.     }
  34.     $sitemap .= "</urlset>\n";
  35.     $fp = fopen(DISCUZ_ROOT.'/'.$filename,'w');
  36.     fwrite($fp,$sitemap);
  37.     fclose($fp);
  38. ?>
复制代码

cron_sitemap.zip (990 Bytes, 下载次数: 0)

2、纯门户文章
  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.         exit('access Denied');
  4. }

  5. $filename='sitemap.xml';
  6. //以下五项根据具体情况修改即可
  7. $cfg_updateperi='60';//协议文件更新周期的上限,单位为分钟
  8. $web_root=$_G['siteurl'];//根网址
  9. $CHARSET='utf-8';// or gbk //选择编码方式
  10. /***********************************************************************************************/
  11. //网站地图sitemap.xml
  12. $sitemap="<?xml version="1.0" encoding="UTF-8"?>\n";
  13. $sitemap.="<urlset\n";
  14. $sitemap.="xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"\n";
  15. $sitemap.="xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n";
  16. $sitemap.="xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9\n";
  17. $sitemap.="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">\n";
  18.     $querys = DB::query("SELECT aid FROM ".DB::table('portal_article_title').' ORDER BY aid DESC');
  19.         $data = '';
  20.         while($articleaid = DB::fetch($querys))
  21.         {
  22.         $aurl =$web_root.'article-'.$articleaid['aid'].'-1.html';//注意静态规则
  23.         $link = $aurl;
  24.                 $t=time();
  25.                 $riqi=date("Y-m-d",$t);
  26.                 $priority=rand(1,10)/10;
  27. //date("D F d Y",$t);
  28. $sitemap.="<url>\n";
  29. $sitemap.="<loc>$link</loc>\n";
  30. $sitemap.="<lastmod>$riqi</lastmod>\n";
  31. $sitemap.="<changefreq>hourly</changefreq>\n";
  32. $sitemap.="<priority>$priority</priority>\n";
  33. $sitemap.="</url>\n";
  34.     }
  35.     $sitemap .= "</urlset>\n";
  36.     $fp = fopen(DISCUZ_ROOT.'/'.$filename,'w');
  37.     fwrite($fp,$sitemap);
  38.     fclose($fp);
  39. ?>
复制代码

cron_sitemap (1).zip (966 Bytes, 下载次数: 0)

3、论坛帖子➕门户文章
  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.         exit('access Denied');
  4. }

  5. $filename='sitemap.xml';
  6. //以下五项根据具体情况修改即可
  7. $cfg_updateperi='60';//协议文件更新周期的上限,单位为分钟
  8. $web_root=$_G['siteurl'];//根网址
  9. $CHARSET='utf-8';// or gbk //选择编码方式
  10. /***********************************************************************************************/
  11. //网站地图sitemap.xml
  12. $sitemap="<?xml version="1.0" encoding="UTF-8"?>\n";
  13. $sitemap.="<urlset\n";
  14. $sitemap.="xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"\n";
  15. $sitemap.="xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n";
  16. $sitemap.="xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9\n";
  17. $sitemap.="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">\n";
  18.     $querys = DB::query("SELECT a.tid FROM ".DB::table('forum_thread')." a inner join ".DB::table('forum_forum')." b on a.fid=b.fid ORDER BY a.tid DESC  LIMIT 0,10000");
  19.     while($threadfid = DB::fetch($querys))
  20.     {
  21.             $turl=$web_root.'thread-'.$threadfid['tid'].'-1-1.html';//注意静态规则
  22.         $link = $turl;
  23.                 $t=time();
  24.                 $riqi=date("Y-m-d",$t);
  25.                 $priority=rand(1,10)/10;
  26. //date("D F d Y",$t);
  27. $sitemap.="<url>\n";
  28. $sitemap.="<loc>$link</loc>\n";
  29. $sitemap.="<lastmod>$riqi</lastmod>\n";
  30. $sitemap.="<changefreq>hourly</changefreq>\n";
  31. $sitemap.="<priority>$priority</priority>\n";
  32. $sitemap.="</url>\n";
  33.     }
  34.     $querys = DB::query("SELECT aid FROM ".DB::table('portal_article_title').' ORDER BY aid DESC');
  35.         $data = '';
  36.         while($articleaid = DB::fetch($querys))
  37.         {
  38.         $aurl =$web_root.'article-'.$articleaid['aid'].'-1.html';//注意静态规则
  39.         $link = $aurl;
  40.                 $t=time();
  41.                 $riqi=date("Y-m-d",$t);
  42.                 $priority=rand(1,10)/10;
  43. //date("D F d Y",$t);
  44. $sitemap.="<url>\n";
  45. $sitemap.="<loc>$link</loc>\n";
  46. $sitemap.="<lastmod>$riqi</lastmod>\n";
  47. $sitemap.="<changefreq>hourly</changefreq>\n";
  48. $sitemap.="<priority>$priority</priority>\n";
  49. $sitemap.="</url>\n";
  50.     }
  51.     $sitemap .= "</urlset>\n";
  52.     $fp = fopen(DISCUZ_ROOT.'/'.$filename,'w');
  53.     fwrite($fp,$sitemap);
  54.     fclose($fp);
  55. ?>
复制代码

cron_sitemap (2).zip (991 Bytes, 下载次数: 0)

二、把 cron_sitemap.php 文件上传到 /source/include/cron 目录。

三、到后台➡工具➡计划任务➡新增,名字随便填写,点击提交。然后编辑,任务脚本:cron_sitemap.php,如下图:

3.webp
网站地图的访问地址:https://你的域名/sitemap.xml




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

本版积分规则

手机版|小黑屋|联系管理|sitemap|老影迷

GMT+8, 2025-8-26 07:26 , Processed in 0.203498 second(s), 33 queries .

Powered by Discuz! X3.5

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