登录  | 立即注册

游客您好!登录后享受更多精彩

查看: 134|回复: 0

[Discuz教程] Discuz不利用插件生成网站地图(sitemap)的方法

[复制链接]

36

主题

36

帖子

0

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
0
发表于 2020-3-16 18:24:55 | 显示全部楼层 |阅读模式
不得不说,Discuz应用中心真的很坑。连一个网站地图类的插件也要收费,这也就算了,价格还贵的吓人。
但是网站又不能没有sitemap,所以阿呆综合了下网络上的教程,找到了这个不用插件就能生成网站地图(sitemap)的方法。(这里提供的是utf-8的代码,gbk的同学请自己转码)

1.建立一个名为cron_sitemap.php的文件(桌面建一个.txt文件,另存为.php),输入如下代码
  1. <?php

  2. /*
  3. *    $ cron_sitemap.php  2020-3-16  网站地图 计划任务版www.neacg.cn
  4. */

  5. if(!defined('IN_DISCUZ')) {
  6.         exit('Access Denied');
  7. }

  8. $filename='sitemap.xml';
  9. //以下五项根据具体情况修改即可
  10. $cfg_updateperi='60';//协议文件更新周期的上限,单位为分钟
  11. $web_root=$_G['siteurl'];//根网址
  12. $CHARSET='utf-8';// or gbk //选择编码方式
  13. /***********************************************************************************************/
  14. //网站地图sitemap.xml
  15. $sitemap="<?xml version="1.0" encoding="UTF-8"?>\n";
  16. $sitemap.="<urlset\n";
  17. $sitemap.="xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"\n";
  18. $sitemap.="xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n";
  19. $sitemap.="xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9\n";
  20. $sitemap.="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">\n";
  21.     $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");
  22.     while($threadfid = DB::fetch($querys))
  23.     {
  24.             $turl=$web_root.'thread-'.$threadfid['tid'].'-1-1.html';//注意静态规则
  25.         $link = $turl;
  26.                 $t=time();
  27.                 $riqi=date("Y-m-d",$t);
  28.                 $priority=rand(1,10)/10;
  29. //date("D F d Y",$t);
  30. $sitemap.="<url>\n";
  31. $sitemap.="<loc>$link</loc>\n";
  32. $sitemap.="<priority>$priority</priority>\n";
  33. $sitemap.="<lastmod>$riqi</lastmod>\n";
  34. $sitemap.="<changefreq>weekly</changefreq>\n";
  35. $sitemap.="</url>\n";
  36.     }
  37.     $sitemap .= "</urlset>\n";
  38.     $fp = fopen(DISCUZ_ROOT.'/'.$filename,'w');
  39.     fwrite($fp,$sitemap);
  40.     fclose($fp);
  41. ?>
复制代码
代码本身已经设置好了,不需要去更改,直接保存即可。

2.把cron_sitemap.php文件上传到网站 /source/include/cron/目录下


3.打开后台,在工具——计划任务新增名为sitemap的计划(你可以自己改名称,不影响)

4.按照图片进行设置,除了任务脚本不能修改之外,其他选项可以根据自己想要的效果更改


5.提交之后,在计划任务那里启用计划。然后打开网站根目录,找到robots.txt文件,在文件底部新增如下代码
  1. Sitemap: https://www.neacg.cn/sitemap.xml
复制代码
这里的https://www.neacg.cn请换成自己的网站域名。

之后计划任务就会按照你设置的时间自动更新网站地图了。
如果不懂建立php文件的同学,可以下载懒人包替换。
懒人包下载地址:https://yunpan.360.cn/surl_yxS6gkYpuHs


本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Neacg

GMT+8, 2020-10-22 11:39 , Processed in 0.135656 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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