因为业务需要,需要在目前项目上开发一个百度小程序,百度智能小程序上线了,但是内容每天得推送,不可能一个小程序路径一个推送吧,因为小程序路径和项目路径不一致。

因为项目是用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');;
} }

  

自动生成百度小程序sitemap.txt文件路径的更多相关文章

  1. 百度小程序-接入自然搜索-API提交Url-c#开发

    开发百度小程序后,接下来,人们最想做的是让百度更多的录入自家内容.因为小程序资源被索引后,才可能在搜索结果中展现. 百度也提供了小程序的自然搜索提交入口.一共有两种方式: 第一种是用已有的H5网站资源 ...

  2. 微信小程序转百度小程序代码

    听说百度小程序开始出现手机端搜索流量,作为SEO一员,必须搞他.但是又奈何之前做的都是微信小程序,所以用php写了一个微信小程序转百度小程序代码. 修改文件后缀名 .wxml转换为.swan .wxs ...

  3. 新手避坑 -- 用 Jenkins +miniprogram-ci 自动构建微信小程序

    先看看效果: 要实现这样的效果,需要下面3步: 1.下载 node 依赖包 miniprogram-ci,编写预览和上传功能 2. 登录微信公众平台, 下载项目的privateKey+添加代码上传IP ...

  4. .NET生成小程序码,并合自定义背景图生成推广小程序二维码

    前言: 对于小程序大家可能都非常熟悉了,随着小程序的不断普及越来越多的公司都开始推广使用起来了.今天接到一个需求就是生成小程序码,并且于运营给的推广图片合并在一起做成一张漂亮美观的推广二维码,扫码这种 ...

  5. 微信小程序-02-项目文件之间配合和调用关系

    微信小程序-02-项目文件之间配合和调用关系 我就不说那么多了,我是从官方文档拷贝的,然后加上一些自己的笔记,不喜勿喷 官方文档:https://developers.weixin.qq.com/mi ...

  6. 微信小程序转换为百度小程序

    据粗略预估,微信小程序和百度小程序,有至少90%以上的相似代码,而且api的参数和返回的数据都是一致的,有一些不一致的将做如下介绍:.wxml文件,改成后辍名.swan.wxss文件,改成后辍名为.c ...

  7. 百度小程序自定义通用toast组件

    百度小程序Toast组件 author: @TiffanysBear 百度小程序自定义通用toast组件 BdToast百度小程序自定义通用组件-github地址 需求 手百小程序的toast仅支持在 ...

  8. 百度小程序-form表单点击提交,input框内容不会清空

    百度小程序与微信小程序相似度90%.微信小程序转换为百度小程序,部分还是需要人工修改! 做了一个form留言表单,点击提交之后,input框第一次会清空,但是第二次就不会清空了! 不多说直接上代码! ...

  9. 百度小程序-map组件定位

    给客户开发一个百度小程序,有个地图定位显示.百度小程序内置的api地图是不准的,通过百度一下,查询到坐标偏移算法公式,自己项目中使用,手机测试坐标已经正常显示! 经纬度,通过百度坐标拾取器拾取到! . ...

随机推荐

  1. Ant Design 学习记录

    遇到的问题: 点击列表中的一个字段 , 显示出一条指定id(其他筛选条件的)数据 解决这个问题之前,要先了解 Antd的 Table中的  Column  列描述数据对象,是 columns 中的一项 ...

  2. remote origin already exists解决办法

    如图翻译过来就是:致命:远程来源已经存在 此时,我们可以先 git remote -v 查看远程库信息: 可以看到,本地库已经关联了origin的远程库,并且,该远程库指向GitHub. 解决办法如下 ...

  3. 超级简单POI导出Excel实战

    在一般的生产管理系统都会将数据通过页面导出到Excel,这里以Java为例通过第三方开源poi进行对Excel的操作,具体操作如下 1.引入jar包依赖 这里我以maven的方式引入jar包,具体依赖 ...

  4. Linux系统 关机/重启/用户切换/注销,用户管理(用户创建/修改,用户组增加/删除),Linux中 / 和 ~ 的区别

    1.关机/重启命令 shutdown命令 shutdown -h now :立即关机 shutdown -h 1 :1分钟后关机 shutdown -r now :立即重启 shutdown -r 1 ...

  5. zookeeper从入门到精通视频教程(含网盘下载地址)

    Zookeeper视频教程链接:https://pan.baidu.com/s/1V9YZN5F3sTKQJOhiDt9hnA 提取码:rtgl

  6. 【实战经验】Xilinx时钟从普通IO输出问题

    Xilinx芯片的时钟信号从普通IO输出时,在map过程中会出错,对此有两种解决方案: 1.在ucf文件中,添加对应的约束文件: 例如[PIN "U0_1/clkout2_buf.O&quo ...

  7. word表格中怎么添加递增的序号

    word2013表格中怎么添加递增的序号?word2013表格中想要让第一类自动显示递增序号,该怎么操作呢?下面我们就来分享两种方法,需要的朋友可以参考下 工具/原料   word2013 通过项目编 ...

  8. 2019 钢银java面试笔试题 (含面试题解析)

    本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条. 钢银等公司offer,岗位是Java后端开发,最终选择去了 钢银. 面试了很多家公司,感觉大部分公司考察的点都差 ...

  9. win 修改notebook路径

    开始发现 notebook 默认的路径是 C:\Users\Administrator 需要修改 将目标中的%USERPROFILE% 直接删掉了

  10. Git下载安装及设置详细教程

    Git下载安装及设置详细教程 一.安装前准备   1. 廖雪峰老师Git教程 :推荐Git入门教程.  2. 按照自己的系统版本下载Git软件,我的操作系统:Windows7 64位,安装版本为Git ...