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

因为项目是用ThinkPHP开发的,在此附上自动输出sitemap.txt代码

  1. <?php
  2. namespace app\index\controller;
  3. use think\Request;
  4. use think\Response;
  5. use mip\Mip;
  6. class Index extends Mip
  7. {
  8. public function index()
  9. {
  10. if ($this->domainSettingsInfo && $this->domainSettingsInfo['diySiteName']) {
  11. $this->assign('mipTitle',$this->domainSettingsInfo['diySiteName']);
  12. } else {
  13. $this->assign('mipTitle',$this->mipInfo['siteName'].$this->mipInfo['indexTitle']);
  14. }
  15.  
  16. return $this->mipView('index/index');
  17. }
  18.  
  19. function sitemap() {
  20. $count = model('app\article\model\Articles')->getCount(0);
  21. $tagsCount = db('Tags')->count();
  22. $pageNum = ceil($count / 200)+1;
  23. $tagPageNum = ceil($tagsCount / 200)+1;
  24. $sitemap = '<?xml version="1.0" encoding="utf-8"?>';
  25. $sitemap .= '<sitemapindex>';
  26. for ($i=1; $i < $pageNum; $i++) {
  27. $sitemap .= '<sitemap>';
  28. $sitemap .= '<loc>' . $this->domain . '/xml/' . $i . '.xml' . '</loc>';
  29. $sitemap .= '<lastmod>' . date("Y-m-d") . '</lastmod>';
  30. $sitemap .= '</sitemap>';
  31. }
  32. for ($i=1; $i < $tagPageNum; $i++) {
  33. $sitemap .= '<sitemap>';
  34. $sitemap .= '<loc>' . $this->domain . '/tagXml/' . $i . '.xml' . '</loc>';
  35. $sitemap .= '<lastmod>' . date("Y-m-d") . '</lastmod>';
  36. $sitemap .= '</sitemap>';
  37. }
  38. $sitemap .= '</sitemapindex>';
  39. return Response::create($sitemap)->contentType('text/xml');;
  40. }
  41.  
  42. function xml() {
  43. $page = input('param.id');
  44. $page = $page ? $page : 1;
  45. $itemList = model('app\article\model\Articles')->getItemPushList('', $page, 200, 'publish_time', 'desc');
  46.  
  47. $xml = '<?xml version="1.0" encoding="utf-8"?>';
  48. $xml .= '<urlset>';
  49. if ($page == 1) {
  50. $xml .= '<url>';
  51. $xml .= '<loc>' . $this->domain . '/' . '</loc>';
  52. $xml .= '<lastmod>' . date("Y-m-d") . '</lastmod>';
  53. $xml .= '<changefreq>daily</changefreq>';
  54. $xml .= '<priority>1.0</priority>';
  55. $xml .= '</url>';
  56. if ($this->itemCategoryList = model('app\article\model\Articles')->getCategory()) {
  57. foreach($this->itemCategoryList as $k => $v) {
  58. $xml .= '<url>';
  59. $xml .= '<loc>' . $v["url"] . '</loc>';
  60. $xml .= '<lastmod>' . date("Y-m-d") . '</lastmod>';
  61. $xml .= '<changefreq>daily</changefreq>';
  62. $xml .= '<priority>0.9</priority>';
  63. $xml .= '</url>';
  64. }
  65. }
  66. }
  67. foreach($itemList as $k => $v) {
  68. $xml .= '<url>';
  69. $xml .= '<loc>' . $v["url"] . '</loc>';
  70. $xml .= '<lastmod>' . date("Y-m-d", $v["publish_time"]) . '</lastmod>';
  71. $xml .= '<changefreq>daily</changefreq>';
  72. $xml .= '<priority>0.6</priority>';
  73. $xml .= '</url>';
  74. }
  75. $xml .= '</urlset>';
  76. return Response::create($xml)->contentType('text/xml');;
  77. }
  78.  
  79. function tagXml() {
  80. $page = input('param.id');
  81. $page = $page ? $page : 1;
  82. $xml = '<?xml version="1.0" encoding="utf-8"?>';
  83. $xml .= '<urlset>';
  84. $tagsList = db($this->tags)->page($page,200)->select();
  85. if ($tagsList) {
  86. foreach ($tagsList as $key => $val) {
  87. if ($val['url_name']) {
  88. $tagsList[$key]['url'] = $this->domain . '/' . $this->mipInfo['tagModelUrl'] .'/' . $val['url_name'] . '/';
  89. } else {
  90. $tagsList[$key]['url'] = $this->domain . '/' . $this->mipInfo['tagModelUrl'] .'/' . $val['id'] . '/';
  91. }
  92. $tagsList[$key]['time'] = $val['add_time'] ? date("Y-m-d", $val["add_time"]) : date("Y-m-d");
  93. }
  94. foreach ($tagsList as $key => $val) {
  95. $xml .= '<url>';
  96. $xml .= '<loc>' . $val["url"] . '</loc>';
  97. $xml .= '<lastmod>' . $tagsList[$key]['time'] . '</lastmod>';
  98. $xml .= '<changefreq>daily</changefreq>';
  99. $xml .= '<priority>0.9</priority>';
  100. $xml .= '</url>';
  101. }
  102. }
  103. $xml .= '</urlset>';
  104. return Response::create($xml)->contentType('text/xml');;
  105. }
  106.  
  107. function baiduSitemapPc() {
  108. $count = model('app\article\model\Articles')->getCount(0);
  109. $pageNum = ceil($count / 200)+1;
  110. $sitemap = '<?xml version="1.0" encoding="utf-8"?>';
  111. $sitemap .= '<sitemapindex>';
  112. for ($i=1; $i < $pageNum; $i++) {
  113. $sitemap .= '<sitemap>';
  114. $sitemap .= '<loc>' . $this->domain . '/pcXml/' . $i . '.xml' . '</loc>';
  115. $sitemap .= '<lastmod>' . date("Y-m-d") . '</lastmod>';
  116. $sitemap .= '</sitemap>';
  117. }
  118. $sitemap .= '</sitemapindex>';
  119. return Response::create($sitemap)->contentType('text/xml');;
  120. }
  121. function pcXml() {
  122. $page = input('param.id');
  123. $page = $page ? $page : 1;
  124. $itemList = model('app\article\model\Articles')->getItemPushList('', $page, 200, 'publish_time', 'desc');
  125.  
  126. $xml = '<?xml version="1.0" encoding="utf-8"?>';
  127. $xml .= '<urlset>';
  128. foreach($itemList as $k => $v) {
  129. $xml .= '<url>';
  130. $xml .= '<loc>' . $v["url"] . '</loc>';
  131. $xml .= '<lastmod>' . date("Y-m-d", $v["publish_time"]) . '</lastmod>';
  132. $xml .= '<changefreq>daily</changefreq>';
  133. $xml .= '<priority>0.6</priority>';
  134. $xml .= '<data>';
  135. $xml .= '<display>';
  136. $xml .= '<title>' . $v['title'] . '</title>';
  137. $xml .= '</display>';
  138. $xml .= '</data>';
  139. $xml .= '</url>';
  140. }
  141. $xml .= '</urlset>';
  142. return Response::create($xml)->contentType('text/xml');;
  143. }
  144. //百度小程序输出
  145. function badiuSmart() {
  146. $page = input('param.id');
  147. $page = $page ? $page : 1;
  148. $itemList = model('app\article\model\Articles')->getItemPushList('', $page, 3000, 'publish_time', 'desc');
  149. //添加小程序路径
  150. $smarturl="pages/articleDetail/articleDetail?uuid=";
  151. foreach($itemList as $k => $v) {
  152. $smart .=$smarturl. $v["uuid"]."\r\n";
  153. }
  154. return Response::create($smart)->contentType('text/html');;
  155. }
  156.  
  157. }

  

自动生成百度小程序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. Python技术点

    调试过程中遇到的问题,继上一篇博文! (1)爬取第一个页面之后名字链接页面存在分页情况 解决方案:根据子网页,选择合适的正则表达式,获取页面数,根据页面数自动生成换页URL (2)测试过程中某些网页数 ...

  2. charles 4.2.1 Ubuntu破解版安装

    charles 4.2.1 Ubuntu破解版安装 下载 charles-proxy-4.2.1_amd64.tar.gz 破解版 charles.jar 破解包 解压 sudo tar -zxvf ...

  3. Install Teamviewer on 14.04? [repost]

    Ref: http://askubuntu.com/questions/453157/how-to-install-teamviewer-on-14-04 TeamViewer 是一款优秀的跨平台免费 ...

  4. 嵌入式02 STM32 实验03 时钟系统

    时钟系统是处理器的核心,所以认真学习时钟系统是必要的,有助于深入理解STM32. 由于STM32的外设很多,有的外设不需要太高的时钟频率,同一个电路,时钟越快功耗越大,同时抗电磁干扰能力也越弱,所以对 ...

  5. Golang-使用mysql

    一.安装mysql-driver驱动 go get github.com/go-sql-driver/mysql 二.安装完毕之后,就可以通过go语言操作mysql了 const ( _selectU ...

  6. 【实战经验】STM32烧录

    1.编译 2.配置烧录工具 2.配置烧录工具 3.配置烧录工具(一般街上Jlink就能检测到对应的STM32芯片) 5.选择FLASH 4.烧录 5.烧录完成

  7. python3:使用for循环打印九九乘法表

    for i in range(1, 10): for j in range(1, i + 1): print(j, '*', i, '=', i * j, end=" ") #en ...

  8. robotframework_百度登陆

    ** Settings *** Library Selenium2Library *** Test Cases *** login Open Browser https://www.baidu.com ...

  9. Redis主从架构搭建和哨兵模式(四)

    一主一从,往主节点去写,在从节点去读,可以读到,主从架构就搭建成功了 1.启用复制,部署slave node wget http://downloads.sourceforge.net/tcl/tcl ...

  10. C#设计模式之12:中介者模式

    中介者模式 在asp.net core中实现进程内的CQRS时用mediatR是非常方便的,定义command,然后定义commandhandler,或者notification和notificati ...