defined('IN_DESTOON') or exit('Access Denied'); $today = timetodate($DT_TIME, 3); $mods = explode(',', $MOD['sitemaps_module']); 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">'; $item = ''; // $nums = intval($MOD['sitemaps_items']); $nums = 100; if($nums) { $fields = $mid == 4 ? 'linkurl' : 'linkurl,edittime'; $order = $mid == 4 ? 'userid' : 'itemid'; $condition = $mid == 4 ? "catids<>''" : "status>2"; // $pagesize = 10000; $offset = ($page-1)*$pagesize; $num = $db->count(get_table($mid), $condition, $CFG['db_expires']); // $maxPage = ceil($num/$pagesize); // $result = $db->query("SELECt $fields FROM ".get_table($mid)." WHERe $condition ORDER BY $order ASC LIMIT $offset,$pagesize"); 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 .= '</url>'; } } $data .= $item; $data .= '</urlset>'; $data = str_replace('><', ">\n<", $data); if($result) file_put(DT_ROOT.'/sitemap/m'.$mid.'p'.$page.'sitemaps.xml', $data); } }
destoon按模块输出xml地图(带分页)destoon按模块输出sitemap.xml网站地图可以控制单个文件数量,文件大小,符合主流搜索引擎对链接数量,文件大小的要求。
destoon按模块输出xml地图开发背景
百度站长平台要求《文件地址格式为txt或xml,每个地址文件最多包含50,000个网址且需小于10MB》
场景一:模块不绑定二级域名,一个文件5W条url,50000/模块数量,每个模块能够提交的url数量有限,内容稍多一点就无法保证所有的url充分抓取
场景二:模块绑定二级域名,单个模块url数量超过5W或者文件大小超过10M为上限,内容增加,无法提交更多的url
destoon按模块输出xml地图功能特色
特色一:无论模块二级目录还是二级域名形式,均按照模块生成xml地图
特色二:可根据自己的url文件提交自由设置单个地图文件生成的url数量{$pageSize},无限多的url会自动分页
特色三:destoon程序默认只有网站首页,模块首页,分类页,内容页可以生成到xml地图文件中,插件可以自用定制要生成的url
destoon按模块输出xml核心代码