stefandoorn/sitemap-plugin

Sylius 的 Sitemap 插件

安装次数: 812,947

依赖者: 2

建议者: 5

安全性: 0

星级: 78

关注者: 4

分支: 43

开放问题: 31

类型:sylius-plugin

v2.2.0 2023-08-15 12:30 UTC

README

License Version Build Coverage Status

感谢

向 Sylius 团队表示感谢。此插件的核心代码由 Sylius 团队创建。不幸的是,它被从 Sylius 核心中移除。幸运的是,Sylius 团队批准将其提取为单独的包。

功能

  • 创建指向子 sitemap 文件的 sitemap 指引文件,每个文件对应一种数据类型
  • 默认提供者:分类、产品 & 静态内容(首页 & 联系我们)
  • 轻松添加自己的提供者
  • 产品提供者支持地区(hreflang)且具有渠道意识
  • 分类提供者支持地区(hreflang)

安装

  1. 运行 composer require stefandoorn/sitemap-plugin
  2. 添加到 app/config/bundles.php
  SitemapPlugin\SitemapPlugin::class => ['all' => true],
  1. 添加到 app/config/packages/_sylius.yaml
    - { resource: "@SitemapPlugin/Resources/config/config.yaml" }
  1. 添加到 app/config/routes.yaml
sylius_sitemap:
    resource: "@SitemapPlugin/Resources/config/routing.yml"
  1. 添加到 app/config/packages/sylius_sitemap.yaml

  2. 在生成的 URL 上强制使用 HTTPS,请参阅 Symfony 文档。在控制台命令中,因为没有 HTTP 请求,所以 URL 默认使用 http。您可以使用这些配置参数全局更改此设置。

# config/services.yaml
parameters:
    router.request_context.scheme: 'https'

使用方法

从 CLI 生成您的 sitemap

 $ bin/console sylius:sitemap:generate

将此命令添加到您的 cronjob 以定期生成新的 sitemap,例如每天一次。

如果您只想为特定渠道生成 sitemap,请使用

 $ bin/console sylius:sitemap:generate --channel=US_WEB

该插件定义了三个默认 URI

  • sitemap.xml: 重定向到 sitemap_index.xml
  • sitemap_index.xml: 渲染 sitemap 指引文件(包含指向提供者 xml 文件的链接)

此外,每个提供者都注册了自己的 URI。请查看 sitemap 指引文件以获取正确的 URI。

默认配置

获取完整的配置列表:bin/console config:dump-reference sitemap

sitemap:
    providers:
        products: true
        taxons: true
        static: true
    template:             '@SitemapPlugin/show.xml.twig'
    index_template:       '@SitemapPlugin/index.xml.twig'
    exclude_taxon_root:   true
    hreflang:             true
    images:               true
    static_routes:
        - { route: sylius_shop_homepage, parameters: [], locales: [] }
        - { route: sylius_shop_contact_request, parameters: [], locales: [] }

请求上下文对于生成 sitemap 中的 URL 也非常重要

  • 主机名按渠道定义,如果没有设置,则默认为 localhost
  • 其他请求上下文设置可以像在 Symfony 文档 中所述进行调整

默认存储

默认情况下,sitemap 将保存到 %kernel.root_dir%/var/sitemap。您可以通过调整参数 sylius.sitemap.path 来更改此设置。

功能开关

默认提供者

  • 产品
  • 分类
  • 静态内容(首页 & 联系我们)

添加自己的提供者

  • 使用 sylius.sitemap_provider 注册并标记您的提供者服务
  • 让您的提供者实现 UrlProviderInterface
  • 使用默认提供者之一作为示例实现代码