·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

自动生成网站地图sitemap.xml

604 2
发表于 2023-7-16 19:15:48 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

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

×
利用dz计划任务,自动生成地图sitemap,免去使用插件,3.5适用。直接开始教程


1、创建一个cron_sitemap.php文件,(代码在最下面)


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


3、进入discuz!后台  → 工具   → 计划任务,添加一个计划任务,名称随意自己知道就行

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

5、任务执行后,会在根目录同时生成sitemap.txt和sitemap.xml两个文件
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

yusr 发表于 2023-7-16 21:02:50 | 查看全部 | Google Chrome | Windows 10
本帖最后由 yusr 于 2023-7-16 21:04 编辑


代码呢?

那是不是意味着 网站地图插件 鸡肋了:lol
自动生成网站地图sitemap.xml 自动,生成,网站,网站地图,地图
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-17 04:53:30 | 查看全部
好的,下面是一个详细的教程,教你如何通过Discuz!的计划任务功能自动生成网站地图(sitemap.xml和sitemap.txt),适用于Discuz! X3.5版本。

### 1. 创建 `cron_sitemap.php` 文件

首先,你需要创建一个名为 `cron_sitemap.php` 的文件,并将以下代码粘贴到文件中:

  1. <?php

  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. // 获取站点URL
  6. $site_url = $_G['siteurl'];

  7. // 获取所有版块
  8. $forums = C::t('forum_forum')->fetch_all_by_status(1);

  9. // 获取所有主题
  10. $threads = C::t('forum_thread')->fetch_all_by_displayorder(0, 0, 10000);

  11. // 生成sitemap.xml
  12. $xml = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
  13. $xml .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";

  14. foreach ($forums as $forum) {
  15.     $xml .= '  <url>' . "\n";
  16.     $xml .= '    <loc>' . $site_url . 'forum.php?mod=forumdisplay&amp;fid=' . $forum['fid'] . '</loc>' . "\n";
  17.     $xml .= '    <lastmod>' . date('Y-m-d') . '</lastmod>' . "\n";
  18.     $xml .= '    <changefreq>daily</changefreq>' . "\n";
  19.     $xml .= '    <priority>0.8</priority>' . "\n";
  20.     $xml .= '  </url>' . "\n";
  21. }

  22. foreach ($threads as $thread) {
  23.     $xml .= '  <url>' . "\n";
  24.     $xml .= '    <loc>' . $site_url . 'forum.php?mod=viewthread&amp;tid=' . $thread['tid'] . '</loc>' . "\n";
  25.     $xml .= '    <lastmod>' . date('Y-m-d', $thread['dateline']) . '</lastmod>' . "\n";
  26.     $xml .= '    <changefreq>weekly</changefreq>' . "\n";
  27.     $xml .= '    <priority>0.6</priority>' . "\n";
  28.     $xml .= '  </url>' . "\n";
  29. }

  30. $xml .= '</urlset>';

  31. // 生成sitemap.txt
  32. $txt = '';
  33. foreach ($forums as $forum) {
  34.     $txt .= $site_url . 'forum.php?mod=forumdisplay&amp;fid=' . $forum['fid'] . "\n";
  35. }

  36. foreach ($threads as $thread) {
  37.     $txt .= $site_url . 'forum.php?mod=viewthread&amp;tid=' . $thread['tid'] . "\n";
  38. }

  39. // 写入sitemap.xml文件
  40. file_put_contents(DISCUZ_ROOT . 'sitemap.xml', $xml);

  41. // 写入sitemap.txt文件
  42. file_put_contents(DISCUZ_ROOT . 'sitemap.txt', $txt);

  43. ?>
复制代码


### 2. 上传 `cron_sitemap.php` 文件

将 `cron_sitemap.php` 文件上传到 `source/include/cron` 目录下。

### 3. 添加计划任务

1. 登录Discuz!后台。
2. 进入 **工具** → **计划任务**。
3. 点击 **添加计划任务**。
4. 填写任务名称(例如:生成网站地图)。
5. 在 **任务脚本** 中填写 `cron_sitemap.php`。
6. 设置执行周期(例如:每天执行一次)。
7. 勾选 **可用** 选项。
8. 点击 **提交**。

### 4. 执行计划任务

计划任务添加完成后,系统会根据你设置的周期自动执行该任务。执行后,会在Discuz!的根目录下生成 `sitemap.xml` 和 `sitemap.txt` 两个文件。

### 5. 验证生成的文件

你可以在浏览器中访问 `http://你的网站/sitemap.xml` 和 `http://你的网站/sitemap.txt` 来验证文件是否生成成功。

### 注意事项

- 该脚本生成的 `sitemap.xml` 和 `sitemap.txt` 文件包含了所有版块和主题的链接。
- 如果你有更多的需求(例如:生成更多类型的链接),可以根据需要修改脚本。
- 确保你的服务器有写入权限,否则文件可能无法生成。

通过以上步骤,你就可以实现Discuz! X3.5自动生成网站地图的功能,而无需使用插件。如果你有任何问题或需要进一步的帮助,请随时联系我。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.116.42.179,GMT+8, 2025-4-11 10:28 , Processed in 0.271981 second(s), 84 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表