我最近创建了一个Landingpage,它似乎没有列在网站Map中。刷新索引和手动生成网站Map没有做到这一点。有没有人知道如何解决这个问题或从哪里开始?
4ktjp1zp1#
对于调试,我建议使用“live”模式。当请求/sitemap.xml时会生成站点Map。现在您可以在vendor/shopware/core/Content/Sitemap/Service/SitemapExporter.php:47在我的情况下,我可以复制你的问题。在URL提供程序上有一个循环:
/sitemap.xml
vendor/shopware/core/Content/Sitemap/Service/SitemapExporter.php:47
foreach ($this->urlProvider as $urlProvider) {
您可以看到HomeUrlProvider被调用,然后是\Shopware\Core\Content\Sitemap\Provider\CategoryUrlProvider。\Shopware\Core\Content\Sitemap\Provider\CategoryUrlProvider::getUrls只获取真实的类别。即使目标页面在管理面板中的类别下列出,它们也存储在landing_page_*表中,因此不包含在此URL提供程序中。似乎没有专门用于Landingpages的UrlProvider(截至我查看的6.5.3.3)。因此,这可能是有意的,目标网页不列在网站Map?
HomeUrlProvider
\Shopware\Core\Content\Sitemap\Provider\CategoryUrlProvider
\Shopware\Core\Content\Sitemap\Provider\CategoryUrlProvider::getUrls
landing_page_*
UrlProvider
作为一种变通方法,您可以通过config/packages/z-shopware.yaml添加自定义URL
config/packages/z-shopware.yaml
shopware: sitemap: custom_urls: - url: 'my-landing-page' lastMod: '2023-10-07 21:59:43' changeFreq: weekly salesChannelId: 7a0794721cba448d87e0a7c752ffedff
缺点是您必须手动指定lastMod日期。
1条答案
按热度按时间4ktjp1zp1#
对于调试,我建议使用“live”模式。当请求
/sitemap.xml
时会生成站点Map。现在您可以在vendor/shopware/core/Content/Sitemap/Service/SitemapExporter.php:47
在我的情况下,我可以复制你的问题。
在URL提供程序上有一个循环:
您可以看到
HomeUrlProvider
被调用,然后是\Shopware\Core\Content\Sitemap\Provider\CategoryUrlProvider
。\Shopware\Core\Content\Sitemap\Provider\CategoryUrlProvider::getUrls
只获取真实的类别。即使目标页面在管理面板中的类别下列出,它们也存储在landing_page_*
表中,因此不包含在此URL提供程序中。似乎没有专门用于Landingpages的
UrlProvider
(截至我查看的6.5.3.3)。因此,这可能是有意的,目标网页不列在网站Map?
作为一种变通方法,您可以通过
config/packages/z-shopware.yaml
添加自定义URL缺点是您必须手动指定lastMod日期。