我已经在官方documentation之后安装了PrestaSitemap包。
我正在尝试按照chapter 5中的说明实现Eventlistener
。
我有一个需要包含的“博客文章”列表,因此我知道我需要添加一个监听器。为了使这个例子简单,我想只是将主页URL添加到站点地图(我可以稍后获取博客文章)。这是我的代码到目前为止的样子:
public function populateSitemap(SitemapPopulateEvent $event)
{
$section = $event->getSection();
if (is_null($event->getSection()) || $event->getSection() == 'mysection') {
$event->getGenerator()->addUrl(
new UrlConcrete(
$url,
new \DateTime(),
UrlConcrete::CHANGEFREQ_HOURLY,
1
),
'mysection'
);
}
}
然而,当我运行命令
时bin / console presta:sitemaps:dump
站点地图不具有正确的设置,因为它将更改频率显示为每日而不是每小时。我认为这段代码根本不运行。可悲的是,他们的“working example”根本不起作用。
主页控制器如下所示:
class HomepageController extends Controller
{
/**
* @Route("/", name="_homepage", options={"sitemap" = true})
*/
public function indexAction()
{
return $this->render('homepage/index.html.twig');
}
}
路由如下所示:(config / routing.yml)
wbpractices:
resource: "@AppBundle/Controller/"
type: annotation
prefix: /
PrestaSitemapBundle:
resource: "@PrestaSitemapBundle/Resources/config/routing.yml"
prefix: /