destoon7.0/8.0地图sitemap根据模块目录输出sitemap.xml

    解决问题:解决网站内容比较多,原来的单个地图不够用多模块的数据调用,所以就写了模块地图单独输出,这样对seo有帮助,提高蜘蛛抓取。

 开始解决办法:找到:/module/extend/sitemaps.htm.php 文件

  把原来的内容换成以下:

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?php
defined('IN_DESTOON') or exit('Access Denied');
if(!$MOD['sitemaps']) {
    file_del(DT_ROOT.'/sitemaps.xml');
    return false;
}
$today = timetodate($DT_TIME, 3);
$mods = explode(',', $MOD['sitemaps_module']);
$nums = intval($MOD['sitemaps_items']/count($mods));
$data = '<?xml version="1.0" encoding="UTF-8"?>';
$data .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
$data .= '<url>';
$data .= '<loc>'.DT_PATH.'</loc>';
$data .= '<lastmod>'.$today.'</lastmod>';
$data .= '<changefreq>always</changefreq>';
$data .= '<priority>1.0</priority>';
$data .= '<data><display></display></data>';
$data .= '</url>';
$item = '';
 
foreach($mods as $mid) {
    if(isset($MODULE[$mid]) && !$MODULE[$mid]['islink'] && !$MODULE[$mid]['domain']) {
        if($mid == 4 && $CFG['com_domain']) continue;
        $url = $MODULE[$mid]['linkurl'];
        $data .= '<url>';
        $data .= '<loc>'.$url.'</loc>';
        $data .= '<lastmod>'.$today.'</lastmod>';
        $data .= '<changefreq>hourly</changefreq>';
        $data .= '<priority>0.9</priority>';
        $data .= '<data><display></display></data>';
        $data .= '</url>';
        if($nums) {
            $fields = $mid == 4 ? 'linkurl' : 'linkurl,edittime';
            $order = $mid == 4 ? 'userid' : 'addtime';
            $condition = $mid == 4 ? "catids<>''" : "status>2";
            $result = $db->query("SELECt $fields FROM ".get_table($mid)." WHERe $condition ORDER BY $order DESC LIMIT $nums");
            while($r = $db->fetch_array($result)) {
                $item .= '<url>';
                $item .= '<loc>'.xml_linkurl($r['linkurl'], $url).'</loc>';
                $item .= '<lastmod>'.($mid == 4 ? $today : timetodate($r['edittime'], 3)).'</lastmod>';
                $item .= '<changefreq>'.$MOD['sitemaps_changefreq'].'</changefreq>';
                $item .= '<priority>'.$MOD['sitemaps_priority'].'</priority>';
                $item .= '<data><display></display></data>';
                $item .= '</url>';
            }
        }
    }
}
$data .= $item;
$data .= '</urlset>';
$data = str_replace('><', ">\n<", $data);
file_put(DT_ROOT.'/sitemaps.xml', $data);
 
foreach($mods as $mid) {
    if(isset($MODULE[$mid]) && !$MODULE[$mid]['islink'] && !$MODULE[$mid]['domain']) {
        if($mid == 4 && $CFG['com_domain']) continue;
        $url = $MODULE[$mid]['linkurl'];
        $data = '<?xml version="1.0" encoding="UTF-8"?>';
        $data .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
        $data .= '<url>';
        $data .= '<loc>'.$url.'</loc>';
        $data .= '<lastmod>'.$today.'</lastmod>';
        $data .= '<changefreq>always</changefreq>';
        $data .= '<priority>1.0</priority>';
        $data .= '<data><display></display></data>';
        $data .= '</url>';
        foreach(cache_read('category-'.$mid.'.php') as $c) {
            $data .= '<url>';
            $data .= '<loc>'.$url.$c['linkurl'].'</loc>';
            $data .= '<lastmod>'.$today.'</lastmod>';
            $data .= '<changefreq>hourly</changefreq>';
            $data .= '<priority>0.9</priority>';
            $data .= '<data><display></display></data>';
            $data .= '</url>';
        }
        $item = '';
        $nums = 30000;
            if($nums) {
            $fields = $mid == 4 ? 'linkurl' : 'linkurl,edittime';
            $order = $mid == 4 ? 'userid' : 'addtime';
            $condition = $mid == 4 ? "catids<>''" : "status>2";
            $result = $db->query("SELECT $fields FROM ".get_table($mid)." WHERe $condition ORDER BY $order ASC LIMIT $nums");
            while($r = $db->fetch_array($result)) {
                $item .= '<url>';
                $item .= '<loc>'.xml_linkurl($r['linkurl'], $url).'</loc>';
                $item .= '<lastmod>'.($mid == 4 ? $today : timetodate($r['edittime'], 3)).'</lastmod>';
                $item .= '<changefreq>'.$MOD['sitemaps_changefreq'].'</changefreq>';
                $item .= '<priority>'.$MOD['sitemaps_priority'].'</priority>';
                $item .= '<data><display></display></data>';
                $item .= '</url>';
            }
        }
        $data .= $item;
        $data .= '</urlset>';
        $data = str_replace('><', ">\n<", $data);
        file_put(DT_ROOT.'/'.$MODULE[$mid]['moduledir'].'/sitemaps.xml', $data);
    }
}
return true;
?>

  

这样保存,然后进入后台,地图生成即可。

  这样访问目录:规则为:域名/模块/sitemaps.xml

例如:www.kaotop.com/xueshu/sitemaps.xml

          http://www.kaotop.com/gaozhong/sitemaps.xml

         http://www.kaotop.com/xiaoxue/sitemaps.xml

 

posted @   圆柱模板  阅读(185)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2019-10-06 python3用turtle库进行绘制小猪佩奇图案
2019-10-06 关于python中lambda 函数使用小结
点击右上角即可分享
微信分享提示