flagrow / sitemap
Requires
- php: 8.*
- flarum/core: ^1.3.1
Requires (Dev)
- flarum/phpstan: *
- flarum/tags: *
- fof/pages: *
Suggests
- flarum/tags: List tags in the sitemap
- fof/pages: List pages in the sitemap
Replaces
- dev-master
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.1
- 2.0.0
- 2.0.0-beta.2
- 2.0.0-beta.1
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.7.0
- 0.6.0
- 0.5.4
- 0.5.3
- 0.5.1
- 0.5.0
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.1
- 0.1.0
- 0.1.0-beta.1
- dev-dependabot/npm_and_yarn/js/webpack-5.94.0
- dev-dk/on-demand-cached
- dev-luceos-patch-1
- dev-cw/use-named-routes
- dev-dk/multi-file
This package is auto-updated.
Last update: 2024-08-30 16:29:37 UTC
README
此扩展仅添加一个站点地图到您的论坛。
它使用默认条目,如讨论和用户,但也足够智能,可以根据扩展的可用性有条件地添加其他条目。这目前适用于 flarum/tags 和 fof/pages。其他扩展可以轻松注入它们自己的资源信息,请参阅以下扩展部分。
模式
使用站点地图有两种模式。
运行时模式
启用扩展后,站点地图将自动可用并在运行时生成。它包含所有用户、讨论、标签和页面,访客都可以访问。
适用于小型论坛,很可能在共享主机环境中,讨论、用户、标签和页面的总和不到 10,000 项。这不是一个硬性限制,但随着项数的增加,性能将会下降。
缓存多文件模式
对于大型论坛,您可以设置一个 cron 作业来生成站点地图索引和压缩的站点地图文件。设置更改后,将自动生成第一个站点地图,但后续更新必须手动触发或通过调度程序(见下文)。
您可以使用以下方法随时手动触发重建:
php flarum fof:sitemap:build
适用于大型论坛,从 10,000 项开始。
有风险的性能改进
此设置旨在为大型企业客户使用。
可选的“启用有风险的性能改进”选项修改了讨论和用户 SQL 查询以限制返回的列数。通过删除这些列,它可以显著减少数据库响应的大小,但可能会破坏扩展添加的自定义可见范围或 slug 驱动程序。
仅在您有数百万个讨论或用户时,此设置才会带来明显的改进。我们建议除非 CRON 作业运行时间超过一小时或 SQL 连接因数据量而饱和,否则不要启用它。
调度
请考虑设置 Flarum 调度程序,这样可以消除上述建议中设置 cron 作业的需求。有关更多信息,请参阅此处
调度程序的频率设置可以通过扩展设置页面进行自定义。
安装
此扩展需要 PHP 8.0 或更高版本。
使用 composer 手动安装
composer require fof/sitemap
更新
composer update fof/sitemap php flarum migrate php flarum cache:clear
Nginx 问题
如果您正在使用 nginx 并且访问 /sitemap.xml
导致 nginx 404 页面,您可以将以下规则添加到您的配置文件中,在您现有的 location
规则下方
location = /sitemap.xml {
try_files $uri $uri/ /index.php?$query_string;
}
此规则确保当不存在具有该名称的文件时,Flarum 将响应对 /sitemap.xml
的请求。
扩展
注册新的资源
为了注册您自己的资源,创建一个实现 FoF\Sitemap\Resources\Resource
的类。确保实现所有抽象方法,检查其他实现以获取示例。之后,注册您的
return [ new \FoF\Sitemap\Extend\RegisterResource(YourResource::class), ];
就是这样。
删除资源
以非常类似的方式,您还可以从站点地图中删除资源
return [ (new \FoF\Sitemap\Extend\RemoveResource(\FoF\Sitemap\Resources\Tag::class)), ];
注册静态 URL
您的论坛的一些页面可能没有覆盖到默认资源。要将这些URL添加到网站地图中,可以使用一个名为StaticUrls
的伪资源。您可以使用RegisterStaticUrl
扩展器添加自己的URL。该扩展器接受一个路由名称作为参数,该参数将使用Flarum\Http\UrlGenerator
类解析为URL。
return [ (new \FoF\Sitemap\Extend\RegisterStaticUrl('reviews.index')), ];
强制缓存模式
如果您希望强制使用缓存模式,例如在复杂的托管环境中,可以通过调用扩展器来实现。
return [ (new \FoF\Sitemap\Extend\ForceCached()), ]
委托
本扩展程序的初始版本由profesionalreview.com赞助。