生成多sitemap文件

author author     2022-08-19     569

关键词:

Thinkphp生成多sitemap文件  

我们知道sitemap对于seo的重要性,很多介绍只生成一个文件sitemap.xml ,但是如果网站内容比较多,就要生成多个sitemap文件,因为搜索引擎对sitemap文件大小和条数有限制,比如google对每个sitemap文件的限制为5万条数据。

何为多sitemap文件机制? 首先我们生成一个主sitemap文件,此文件为sitemapindex类型,其中存放子sitemap文件的路径。子sitemap文件用来存放具体文章item. 这里我们假定每个子sitemap存放网址数为10000个。则代码如下(这里用的thinkphp框架,原理都是一样的):

 

class SitemapAction extends Action { 
     
   //生成sitemap 
    public function create() {
                $page_size    =    10000; //每页条数
                $bp_db    =    M(‘BaobeiProducts‘);
                //1w个地址生成一个子地图,判断需要生成几个?
                $count        =    $bp_db->where(‘status = 1‘)->count();
                $page_count    =    ceil($count/$page_size);  //分几个文件
                
                $this->create_index($page_count);    //生成主sitemap
                $this->create_child($page_count,$page_size);    //生成子sitemap
                
 
            $this->success(‘地图生成成功‘); 
        
    }
    
    //生成主sitemap
    protected function create_index($page_count) {
    
                $content    =    "<?xml version="1.0" encoding="utf-8"?>
<sitemapindex xmlns=" http://www.sitemaps.org/schemas/sitemap/0.9">
";
                for($i=1;$i<=$page_count;$i++) {
                    
                        $content    .="<sitemap>
<loc> http://HOST/sitemap/sitemap".$i.".xml</loc>
<lastmod>".date(‘Y-m-d‘)."</lastmod>
</sitemap>";
                }
                $content .= "</sitemapindex>";
                
                $file = fopen("sitemap.xml","w"); 
            fwrite($file,$content); 
            fclose($file);
    
    
   }
   
   //生成子sitemap
   protected function create_child($page_count,$page_size) {
       
       for($i=0;$i<$page_count;$i++) {

                   $list = M(‘BaobeiProducts‘)->field(‘id,m_time‘)->order(‘id asc‘)->limit($i*$page_size.‘,‘.$page_size)->select(); 
                
                $sitemap = "<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
"; 
                    foreach($list as $k=>$v){ 
                        $sitemap .= "<url>
"."<loc>http://HOST/baobei/".$v[‘id‘]."</loc>
"."<priority>0.6</priority>
<lastmod>".date(‘Y-m-d‘,$v[‘m_time‘])."</lastmod>
<changefreq>weekly</changefreq>
</url>
"; 
             
                    } 
                 
                $sitemap .= ‘</urlset>‘; 
                 
                $file = fopen("sitemap/sitemap".($i+1).".xml","w"); 
                fwrite($file,$sitemap); 
                fclose($file);
           }
       } 
 
}

 

如何在 nodejs 中侦听和生成多个子进程

】如何在nodejs中侦听和生成多个子进程【英文标题】:HowdoIlistenandspawnmultiplechildprocessinnodejs【发布时间】:2015-09-0216:51:53【问题描述】:我正在尝试在for循环中执行与nodejs中的子进程相同的javajar文件,但是如何监听多个子输出... 查看详情

如何在ios中动态生成多页pdf时处理分页

】如何在ios中动态生成多页pdf时处理分页【英文标题】:Howtohandlepaginationingeneratingmultiplepagepdfiniosdynamically【发布时间】:2013-01-2012:36:43【问题描述】:我使用以下代码生成pdf文件及其内容。最初,我设计了pdf内容,通过将cgpoint... 查看详情

html-webpack-plugin插件根据模板生成多页面

1、项目目录结构为: 2、webpack.config.js配置文件为: varhtmlWebpackPlugin=require(‘html-webpack-plugin‘);module.exports={//打包入口entry:{main:‘./src/js/main.js‘,a:‘./src/js/a.js‘,b:‘./src/js/b.js‘,c:‘./src/js/ 查看详情

生成多页 PDF UIView

】生成多页PDFUIView【英文标题】:GeneratemultipagePDFUIView【发布时间】:2019-09-0309:27:42【问题描述】:我想创建self.view的多页PDF。我关注viewController和tableView现在我想创建视图的pdf。这是我所做的,但它只创建单页pdffuncpdfDataWithTable... 查看详情

使用循环生成多个子图

】使用循环生成多个子图【英文标题】:Generateseveralsubplotswithaloop【发布时间】:2021-12-1803:10:51【问题描述】:我想在一个小图表中显示每年每个月的所有平均温度。我的第一个问题是打印较冷(蓝色)和较暖(分别为红色)温... 查看详情

如何鞋子批发生成多站点

如何鞋子批发生成多站点鞋子批发|运动鞋批发|运动鞋代理加盟|品牌运动鞋| 利用模版站点,生成静态页面,然后裂变下,就应该可以,上面给了一个案例,下面是代码 <divclass="itemclearfix"><ahref="http://www.dsnsx.com/index... 查看详情

java示例代码_用Java生成多域(UCC)证书

java示例代码_用Java生成多域(UCC)证书 查看详情

如何为不同的目标范围(或模式)生成多目标回归数据集

】如何为不同的目标范围(或模式)生成多目标回归数据集【英文标题】:Howtogenerateamultitargetregressiondatasetfordifferenttargetranges(orpatterns)【发布时间】:2021-12-1802:46:22【问题描述】:我们可以使用sklearn的make_regression()函数生成多目... 查看详情

如何使用 numpy 生成多类测试数据集?

】如何使用numpy生成多类测试数据集?【英文标题】:Howtogeneratemulticlasstestdatasetusingnumpy?【发布时间】:2019-04-2316:54:46【问题描述】:我想使用numpy生成一个多类测试数据集,仅用于分类问题。例如,X是一个numpy维度数组(mxn)... 查看详情

20170727xlvba根据总名单和模板生成多页名单

SubCountingDown()DimDicAsObject‘用于分类统计DimiAsLongDimCountDownAsLong‘每页最多几条信息DimxAsLong,yAsLongDimPageAsLong‘页数DimIndexAsLong‘每页的序号DimShtAsWorksheetDimStartRowAsLong,EndRowAsLong‘分页的起始行DimmRngAsRange‘模板 查看详情

poi根据模版生成多页word,并压缩下载(代码片段)

...,支持插入数据和图片;poi替换word模板内容并且合并生成多页的word实现分页。先上工具类的代码:importorg.apache.poi.xwpf.usermo 查看详情

实体框架数据库首先生成多对多中间表,其中没有额外的列

】实体框架数据库首先生成多对多中间表,其中没有额外的列【英文标题】:EntityFrameworkDBFirstgeneratemanytomanyintermediatetableWITHOUThavingextracolumnsinit【发布时间】:2017-03-1601:13:57【问题描述】:我很清楚,如果我有一个多对多关系,... 查看详情

ffmpeg移植android编译生成多库

该文档主要是介绍将FFmpeg音视频编解码库移植到Android中的编译过程环境准备Ubuntu14.04android-ndk-r9d-linux-x86_64.tar.bz2第一步:下载FFmpeg源码到FFmpeg官网下载FFmpeg源码,该文档编译的源码版本是FFmpeg3.0.2第二步:在Linux环境... 查看详情

python开发区块链之04如何生成多签名的bitcoinaddress

参考技术A欢迎关注专栏《区块链Blockchain》多签名的bitcoinaddress需要多个privitekey来生成。例如我们生成三个privatekeymy_multi_sig=mk_multisig_script(my_private_key1,my_private_key2,my_private_key3)my_multi_address=scriptaddr(my_multi_sig) 查看详情

vue预渲染插件prerender-spa-plugin(seo优化,生成多页面)

参考技术Avue等框架打包的项目一般为SPA应用,而单页面是不利于SEO的,现在的解决方案有两种:注意:然后在webpack.prod.conf.js里面添加:在webpack.prod.conf.js的plugins里面添加:最后在main.js里面修改:安装:在main.js引入:在vue页面... 查看详情

sitemap怎样生成?

...那个被百度,谷歌,雅虎,爱问收录那种。谢谢!!googlesitemap怎样生成呢?谢谢~~sitemap怎么生成1.利用site生成器生成sitemap文件,新建文件——输入域名(例如”www.fuyeor.com“),文件存储位置——进入生成页面,点击开始——文... 查看详情

php生成sitemap.xml地图文件(代码片段)

文章目录前言什么是Sitemap?sitemap文件遵循指南xml格式详解实战代码sitemap组件代码调用sitemap组件仓库地址实战截图相关问题Sitemap提交后,多久能被百度处理?提交的Sitemap都会被百度抓取并收录吗?XML格式的Sitemap... 查看详情

php生成sitemap.xml地图文件(代码片段)

文章目录前言什么是Sitemap?sitemap文件遵循指南xml格式详解实战代码sitemap组件代码调用sitemap组件仓库地址实战截图相关问题Sitemap提交后,多久能被百度处理?提交的Sitemap都会被百度抓取并收录吗?XML格式的Sitemap... 查看详情