winter / wn-sitemap-plugin
Winter CMS 的站点地图插件
Requires
- php: >=7.2
- composer/installers: ~1.0
Replaces
- rainlab/sitemap-plugin: ~1.0
README
此插件将根据所需的 CMS 页面和其他内容在 Winter CMS 中生成 sitemap.xml
文件。
查看站点地图
一旦安装了此插件并配置了站点地图,可以通过访问相对于网站基本路径的文件来查看站点地图。例如,如果网站托管在 https://wintercms.com,可以通过打开此 URL 来查看:
https://wintercms.com/sitemap.xml
管理站点地图定义
通过从后端的设置区域选择站点地图来管理站点地图。每个主题都有一个单独的站点地图定义,它将自动创建。
站点地图定义可以包含多个项目,每个项目都有多个属性。所有项目类型都有常见属性,一些属性取决于项目类型。常见的项目属性是 优先级 和 更改频率。优先级定义了该项目相对于站点地图中其他项目的优先级。更改频率定义了页面可能更改的频率。
标准项目类型
可用的项目类型取决于安装的插件,但以下三种基本项目类型是默认支持的。
URL {.subheader}
此类项目是链接到特定固定 URL。这可能是一个或内部页面的 URL。此类项目没有其他属性——只有标题和 URL。
静态页面 {.subheader}
此类项目指的是静态页面。应在以下描述的 引用 下拉列表中选择静态页面。
所有静态页面 {.subheader}
此类项目扩展以创建指向主题中定义的所有静态页面的链接。
自定义项目类型
其他插件可以提供新的项目类型。例如,博客插件 提供了两种类型。
博客分类 {.subheader}
此类项目表示指向特定博客分类的链接。应在 引用 下拉列表中选择分类。此类型还需要选择一个输出博客分类的 CMS 页面。
所有博客分类 {.subheader}
此类项目扩展为包含代表所有现有博客分类的多个项目。此类型还需要选择一个 CMS 页面。
定义项目属性
根据所选的项目类型,您可能需要提供项目的其他属性。以下描述了可用的属性。
引用 {.subheader}
一个下拉列表,其中包含项目应引用的对象。列表内容取决于项目类型。对于 静态页面 项目类型,列表显示系统定义的所有静态页面。对于 博客分类 项目类型,列表显示博客分类列表。
允许嵌套项目 {.subheader}
此复选框仅适用于应嵌套对象的项类型。例如,静态页面是分层的,此属性适用于 静态页面 项目类型。另一方面,博客分类不是分层的,复选框是隐藏的。
CMS 页面 {.subheader}
此下拉列表适用于需要特殊CMS页面引用的项目类型。例如,博客类别项目类型需要托管blogPosts
组件的CMS页面。此项目类型的CMS页面下拉列表将仅显示包含此组件的页面。
网站地图插件开箱即用,无需直接开发即可运行。
注册新的网站地图定义项目类型
网站地图插件与页面插件共享相同的注册项目类型的事件。有关更多信息,请参阅此插件提供的文档。
解决项目时需要一个小补充,通过以下事件
pages.menuitem.resolveItem
事件处理器“解析”菜单项信息,并返回实际项目URL、标题、指示项目是否当前激活以及子项目(如果有)。
解决项目
在解决项目时,每个项目应在数组中返回一个额外的键,称为mtime
。这应该是一个Date对象(请参阅Carbon\Carbon
)或与PHP的date()
函数兼容的时间戳值,代表链接最后一次修改的时间。
预期结果格式
Array (
[url] => https://example.com/blog/category/another-category
[mtime] => Carbon::now(),
[items] => Array (
[0] => Array (
[url] => https://example.com/blog/category/another-category
[mtime] => Carbon::now(),
)
[1] => Array (
[url] => https://example.com/blog/category/news
[mtime] => Carbon::now(),
)
)
)