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

黄亚东笔记

 找回密码
 立即注册

生成xml_Discuz X3.4免插件采用定时任务自动生成sitemap.xml

[复制链接]

为了更好的利于SEO,加快百度、360、谷歌、bing、搜狗等收录,我们需要网站生成sitemal.xml,有些搜索引擎只支持.xml,不支持.txt,所以我们必须在511遇见论坛下自动生成sitemap.xml,由于我们采用了伪静态,所以生成的链接必须和伪静态规则一致,在discuz后台插件搜索了几个,姑且不谈收费免费,发现很不稳定,且静态规则无法兼容,这里我们采用discuz的定时任务,自动生成itemap.xml

手动建立一个cron_sitemap.php文件复制以下内容

注意自己discuz的编码,我这里utf-8,注意手动修改。

  1. <?php

  2. /*
  3. *    $ cron_sitemap.php  2012-5-28  网站地图 计划任务版 z.aq31.com
  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='gbk';// or utf-8 //选择编码方式
  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. ?>
复制代码

把cron_sitemap.php上传至sourceincludecron目录

discuz后台添加定时任务

后台--工具--计划任务--新增,名字随便,提交
然后编辑,任务脚本:cron_sitemap.php

5.png


discuz自动添加sitemap

以上操作完后,我们可以在根目录的robots.txt文件里加上

  1. sitemap: https://www.aq31.com/sitemap.xml
复制代码

地图网址换成自已的。


cron_sitemap.rar

1002 Bytes, 下载次数: 0

回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|黄亚东笔记 ( 鄂ICP备20004876号-4 )

GMT+8, 2022-8-10 12:34 , Processed in 1.125087 second(s), 25 queries .

黄亚东 友情赞助: 高佣联盟

公众号:亚东电商 站长VX:yadongtd

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