PHPCMS V9 全站 Sitemaps生成实现代码[服务器端版]
需求:
通过服务器的定时任务自动更新网站全站的所有文章,并生成sitemaps
以下代码为sitemaps crontab for phpcms v9,以下代码保存到phpcms 根目录下,配置cronTab定时生成即可
代码:
<?php
/**
* sitemap.php PHPCMS V9 sitemaps入口
*
* @copyright (C) 2015-2018 piaoyun.cc
* @license http://piaoyun.cc
* @lastmodify 2015-05-06
*/
if(PHP_SAPI != 'cli')
{
header('location: sitemaps.xml');
exit;
}
define('SITEMAP_SIZE', 10000); //sitemaps中最大输出数量
define('MODEL_SIZE', 3000); //每个模型中最大输出数量
$model_arr = array(1=>'资讯', 2=>'图片', 3=>'下载'); //定义需要生成sitemaps的模型
define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
include PHPCMS_PATH.'/phpcms/base.php';
$param = pc_base::load_sys_class('param');
$model_arr = emptyempty($model_arr) ? getcache('model','commons') : $model_arr;
$map = array();
foreach ($model_arr as $modelid => $model)
{
$tablename = $model['tablename'];
$db = pc_base::load_model('content_model');
$db->set_model($modelid);
if($db->count() && count($map) < SITEMAP_SIZE)
{
$order = 'id desc';
$arc = $db->select(array('status'=>99), 'url,updatetime', MODEL_SIZE, $order);
$map = array_merge($map, $arc);
}
}
/* 遍历生成 */
$html = '<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
foreach ($map as $row)
{
if(emptyempty($row) || emptyempty($row['url'])) continue;
$date = date("Y-m-d", $row['updatetime']);
$url = str_replace(array('&', ''', '"', '>', '<'), array('&', ''', '"', '>', '<'), $row['url']);
$html .= "
<url>
<loc>{$url}</loc>
<lastmod>{$date}</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>";
}
$html .= '</urlset>';
file_put_contents('./sitemaps.xml', $html);
?>栏 目:PHPCMS
下一篇:完美解决phpcms图片太大撑破表格图片自适应图片按比例缩小
本文标题:PHPCMS V9 全站 Sitemaps生成实现代码[服务器端版]
本文地址:https://zz.feitang.co/CMSjiaocheng/26347.html
您可能感兴趣的文章
- 11-19phpcms调用全站热点文章月排行的代码
- 11-19phpcms v9 搜索页显示自定义字段
- 11-19phpcms v9 内容页调用当前栏目名称及链接/上级栏目名称及链接方法
- 11-19phpcms V9基础知识之:常用文件目录结构
- 11-19phpcms v9 彻底去除自带的水印功能的方法
- 11-19phpcms在nginx的rewrite伪静态标准写法
- 11-19phpcms V9基础知识之:默认templates主题模板文件目录结构介绍
- 11-19Phpcms V9 调用全站文章排行的解决方法
- 11-19Phpcms V9 调用随机文章的实现方法
- 11-19phpcms v9分页函数pages中上一页,下一页文本内容修改方法


阅读排行
推荐教程
- 09-22phpcms是什么框架
- 09-22phpcms手机端如何取消伪静态
- 11-12phpcms如何使用水印功能
- 11-19phpcms调用全站热点文章月排行的代码
- 11-12phpcms不限制模型进行全站搜索
- 11-12phpcms栏目标签调用代码大全
- 11-12phpcms二次开发用拼音作为tags列表页路径的方法
- 11-12如何用phpcms调取指定位置的新闻列表
- 11-16Phpcms V9列表分页自定义页码文字(改成中文)
- 11-16phpcms ajax列表分页加载更多




