PHPCMS内容管理系统
非官方
网站首页
源码下载
帮助文档
二开教程
新手入门教程
模板标签使用
数据库结构
PHPCMS插件
免费插件
收费插件
更新日志
开发定制
网站首页
源码下载
帮助文档
PHPCMS插件
开发定制
更新日志
有问题?加我处理
二开教程
Development
提供PHPCMS常用模块的二次开发,改造,升级都修改过程代码
二开教程
二开教程
新手入门教程
模板标签使用
数据库结构
热门文章
1
PHPCMS v9小程序插件简介
2
phpcms在线付费阅读插件(包含:支付宝支付模块+微信支付模块+付费阅读模块)
3
phpcms新版商城插件,支持购物车、订单、物流管理等功能
4
【phpcms-v9】phpcms-v9中自定义全局函数文件:extention.func.php
5
【phpcms-v9】phpcms-v9中复制采集节点功能(扩展:专题碎片的
6
【phpcms-v9】phpcms-v9中多站点水印问题
7
phpcms常用接口调用方法
8
PHPCMS开启在线编辑模板
9
phpcms表单信息倒序排列(按ID降序排列)代码修改!
10
phpcms v9 列表页调用自定义字段方法
PHPCMS V9 全站 Sitemaps生成实现代码[服务器端版]
admin
2023-06-20 22:24:09
需求:
通过服务器的定时任务自动更新网站全站的所有文章,并生成sitemaps
以下代码为sitemaps crontab for phpcms v9,以下代码保存到phpcms 根目录下,配置cronTab定时生成即可
代码:
PHP Code
复制内容到剪贴板
<?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
=
empty
empty
(
$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
(
empty
empty
(
$row
) ||
empty
empty
(
$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
);
?>
当然windows一样可以使用,通过计划任务与dos命令完成 https://www.jb51.net/article/86202.htm。
本文《PHPCMS V9 全站 Sitemaps生成实现代码[服务器端版]》发布于PHPCMS管理系统文章,作者:admin,如若转载,请注明出处:https://www.phpcms.vip/help/doc/297.html,否则禁止转载,谢谢配合!
上一篇:
PHPCMS v9 安全设置、防范教程
下一篇:
phpcms内容详情页只显示日期不显示时间的方法