使用PrestaSitemap Bundle创建站点地图

时间:2016-03-28 14:05:42

标签: php symfony sitemap

我已经在官方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:   /

0 个答案:

没有答案