因为业务需要,需要在目前项目上开发一个百度小程序,百度智能小程序上线了,但是内容每天得推送,不可能一个小程序路径一个推送吧,因为小程序路径和项目路径不一致。
因为项目是用ThinkPHP开发的,在此附上自动输出sitemap.txt代码
<?php namespace app\index\controller; use think\Request; use think\Response; use mip\Mip; class Index extends Mip { public function index() { if ($this->domainSettingsInfo && $this->domainSettingsInfo['diySiteName']) { $this->assign('mipTitle',$this->domainSettingsInfo['diySiteName']); } else { $this->assign('mipTitle',$this->mipInfo['siteName'].$this->mipInfo['indexTitle']); } return $this->mipView('index/index'); } function sitemap() { $count = model('app\article\model\Articles')->getCount(0); $tagsCount = db('Tags')->count(); $pageNum = ceil($count / 200)+1; $tagPageNum = ceil($tagsCount / 200)+1; $sitemap = '<?xml version="1.0" encoding="utf-8"?>'; $sitemap .= '<sitemapindex>'; for ($i=1; $i < $pageNum; $i++) { $sitemap .= '<sitemap>'; $sitemap .= '<loc>' . $this->domain . '/xml/' . $i . '.xml' . '</loc>'; $sitemap .= '<lastmod>' . date("Y-m-d") . '</lastmod>'; $sitemap .= '</sitemap>'; } for ($i=1; $i < $tagPageNum; $i++) { $sitemap .= '<sitemap>'; $sitemap .= '<loc>' . $this->domain . '/tagXml/' . $i . '.xml' . '</loc>'; $sitemap .= '<lastmod>' . date("Y-m-d") . '</lastmod>'; $sitemap .= '</sitemap>'; } $sitemap .= '</sitemapindex>'; return Response::create($sitemap)->contentType('text/xml');; } function xml() { $page = input('param.id'); $page = $page ? $page : 1; $itemList = model('app\article\model\Articles')->getItemPushList('', $page, 200, 'publish_time', 'desc'); $xml = '<?xml version="1.0" encoding="utf-8"?>'; $xml .= '<urlset>'; if ($page == 1) { $xml .= '<url>'; $xml .= '<loc>' . $this->domain . '/' . '</loc>'; $xml .= '<lastmod>' . date("Y-m-d") . '</lastmod>'; $xml .= '<changefreq>daily</changefreq>'; $xml .= '<priority>1.0</priority>'; $xml .= '</url>'; if ($this->itemCategoryList = model('app\article\model\Articles')->getCategory()) { foreach($this->itemCategoryList as $k => $v) { $xml .= '<url>'; $xml .= '<loc>' . $v["url"] . '</loc>'; $xml .= '<lastmod>' . date("Y-m-d") . '</lastmod>'; $xml .= '<changefreq>daily</changefreq>'; $xml .= '<priority>0.9</priority>'; $xml .= '</url>'; } } } foreach($itemList as $k => $v) { $xml .= '<url>'; $xml .= '<loc>' . $v["url"] . '</loc>'; $xml .= '<lastmod>' . date("Y-m-d", $v["publish_time"]) . '</lastmod>'; $xml .= '<changefreq>daily</changefreq>'; $xml .= '<priority>0.6</priority>'; $xml .= '</url>'; } $xml .= '</urlset>'; return Response::create($xml)->contentType('text/xml');; } function tagXml() { $page = input('param.id'); $page = $page ? $page : 1; $xml = '<?xml version="1.0" encoding="utf-8"?>'; $xml .= '<urlset>'; $tagsList = db($this->tags)->page($page,200)->select(); if ($tagsList) { foreach ($tagsList as $key => $val) { if ($val['url_name']) { $tagsList[$key]['url'] = $this->domain . '/' . $this->mipInfo['tagModelUrl'] .'/' . $val['url_name'] . '/'; } else { $tagsList[$key]['url'] = $this->domain . '/' . $this->mipInfo['tagModelUrl'] .'/' . $val['id'] . '/'; } $tagsList[$key]['time'] = $val['add_time'] ? date("Y-m-d", $val["add_time"]) : date("Y-m-d"); } foreach ($tagsList as $key => $val) { $xml .= '<url>'; $xml .= '<loc>' . $val["url"] . '</loc>'; $xml .= '<lastmod>' . $tagsList[$key]['time'] . '</lastmod>'; $xml .= '<changefreq>daily</changefreq>'; $xml .= '<priority>0.9</priority>'; $xml .= '</url>'; } } $xml .= '</urlset>'; return Response::create($xml)->contentType('text/xml');; } function baiduSitemapPc() { $count = model('app\article\model\Articles')->getCount(0); $pageNum = ceil($count / 200)+1; $sitemap = '<?xml version="1.0" encoding="utf-8"?>'; $sitemap .= '<sitemapindex>'; for ($i=1; $i < $pageNum; $i++) { $sitemap .= '<sitemap>'; $sitemap .= '<loc>' . $this->domain . '/pcXml/' . $i . '.xml' . '</loc>'; $sitemap .= '<lastmod>' . date("Y-m-d") . '</lastmod>'; $sitemap .= '</sitemap>'; } $sitemap .= '</sitemapindex>'; return Response::create($sitemap)->contentType('text/xml');; } function pcXml() { $page = input('param.id'); $page = $page ? $page : 1; $itemList = model('app\article\model\Articles')->getItemPushList('', $page, 200, 'publish_time', 'desc'); $xml = '<?xml version="1.0" encoding="utf-8"?>'; $xml .= '<urlset>'; foreach($itemList as $k => $v) { $xml .= '<url>'; $xml .= '<loc>' . $v["url"] . '</loc>'; $xml .= '<lastmod>' . date("Y-m-d", $v["publish_time"]) . '</lastmod>'; $xml .= '<changefreq>daily</changefreq>'; $xml .= '<priority>0.6</priority>'; $xml .= '<data>'; $xml .= '<display>'; $xml .= '<title>' . $v['title'] . '</title>'; $xml .= '</display>'; $xml .= '</data>'; $xml .= '</url>'; } $xml .= '</urlset>'; return Response::create($xml)->contentType('text/xml');; } //百度小程序输出 function badiuSmart() { $page = input('param.id'); $page = $page ? $page : 1; $itemList = model('app\article\model\Articles')->getItemPushList('', $page, 3000, 'publish_time', 'desc'); //添加小程序路径 $smarturl="pages/articleDetail/articleDetail?uuid="; foreach($itemList as $k => $v) { $smart .=$smarturl. $v["uuid"]."\r\n"; } return Response::create($smart)->contentType('text/html');; } }