上次新增了sitemap.txt功能,這次加了一個把網站熱門搜尋記錄全部輸出到txt地圖上,更有利于蜘蛛的抓取,希望對大家有幫助!
沒做過之前的功能,可以參考:https://blog.csdn.net/luo2424348224/article/details/104238910
做過的話,直接在之前那裡覆寫:sitemaptxt.htm.php 檔案
代碼如下:
<?php
/*
作者:68喜科技
網站:www.sdfymj.com
時間:2020/2/9
功能:dt7.0站點地圖(sitemap.txt)輸出
*/
defined('IN_DESTOON') or exit('Access Denied');
if(!$MOD['sitemaps']) {
file_del(DT_ROOT.'/sitemaps.txt');
return false;
}
$moodule_count= count($mods);//子產品個數
$mods = explode(',', $MOD['sitemaps_module']);
$nums = intval($MOD['sitemaps_items']);//盡量湊成5萬條
$data .= DT_PATH;
$data .= "\r\n";
//archiver輸出
$archiver=$CFG['url'].'archiver/';
$data .= $archiver;
$data .= "\r\n";
foreach($mods as $mid) {
$indexhtm='index-htm-mid-';
$htm='.html';
$midurl=$archiver.$indexhtm.$mid.$htm;
$data .= $midurl;
$data .= "\r\n";
}
//archiver輸出end
//關鍵詞搜尋記錄調取
foreach($mods as $mid) {
$starid = 1; //初始ID 開
$module= $mid;//子產品推送,21資訊,5供應,22招商,13品牌,9招聘,10知道,12圖檔,14視訊,15下載下傳,18論壇
$domain=$CFG['url'];//這個是擷取配置檔案的域名,預設格式是:http://www.sdfymj.com/
if($module==21){
$dir='news/';
}elseif($module==5){
$dir='sell/';
}elseif($module==22){
$dir='invest/';
}elseif($module==15){
$dir='down/';
}elseif($module==18){
$dir='club/';
}elseif($module==12){
$dir='photo/';
}elseif($module==14){
$dir='video/';
}//如果目錄重新改過可以在這添加和修改
if($nums) {
$result = $db->query("SELECT letter FROM {$DT_PRE}keyword WHERE itemid> $starid AND MODULEID=$module ORDER BY itemid ASC LIMIT $nums");
while($r = $db->fetch_array($result)) {
$linkId = $r['letter']; //我這個是二開過的,拼音搜尋為靜态擷取拼音
//$linkId = $r['word']; //官方是中文url就開啟這個
$linkurl = $dir."kw-".$linkId.".html";//定義子產品URL
$item.=$domain.$linkurl;
$item .= "\r\n";;
}
}
}
$data .= $item;
$data = str_replace('><', ">\n<", $data);
file_put(DT_ROOT.'/sitemaps.txt', $data);
//關鍵詞搜尋記錄結束
$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 .= "\r\n";
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 .= xml_linkurl($r['linkurl'], $url);
$item .= "\r\n";;
}
}
}
}
$data .= $item;
//$data = str_replace('><', ">\n<", $data);
file_put(DT_ROOT.'/sitemaps.txt', $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 .= $url;
$data .= "\r\n";
foreach(cache_read('category-'.$mid.'.php') as $c) {
$data .= $url.$c['linkurl'];
$data .= "\r\n";
}
$item = '';
$nums = intval($MOD['sitemaps_items']);
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 .=xml_linkurl($r['linkurl'], $url);
$item .= "\r\n";
}
}
$data .= $item;
$data .= "\r\n";
//$data = str_replace('><', ">\n<", $data);
file_put(DT_ROOT.'/'.$MODULE[$mid]['moduledir'].'/sitemaps.txt', $data);
}
}
return true;
?>
這樣效果就出來了,示範圖檔:

示範位址:http://www.sdfymj.com/sitemaps.txt
