1

我正在生成 sitemap.xml,它生成了 17 个在网站上有链接的文件,这意味着页面在页眉或页脚或相互链接中,但我有 50 个未生成的 SEO 页面。

我们在站点上没有任何链接(页眉、页脚和链接),它位于 View/Pages 文件夹中,方法位于 PagesController 中。我想在 sitemap.xml 中动态生成 50 个 SEO 页面。它将如何运作?

我正在通过 Generator.zip 文件夹进行操作。

4

1 回答 1

2

尝试这个

public function seo_sitemap()
{
    $this->autoRender=false;
    $data = $this->Page->find('all');
    if(!empty($data))
    {
      $writer = new XMLWriter();
      $writer->openURI(WWW_ROOT.'/seo_pages_sitemap.xml');
      $writer->startDocument('1.0', 'UTF-8');
      $writer->setIndent(4);
      $writer->startElement('urlset');
      $writer->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
      $writer->writeAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9');
      $writer->writeAttribute('xsi:schemaLocation', 'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd');

      foreach ($data as $list)
      {

        $urls = SITEURL."/".$list['Page']['url'].".html";
        $lin=utf8_encode($urls);
        $url_date = date(DATE_W3C, strtotime($list['Page']['created']));
        $writer->startElement('url');
        $writer->writeElement('loc', $lin);
        $writer->writeElement('lastmod',trim($url_date));
        $writer->writeElement('changefreq', 'always');
        $writer->writeElement('priority', '0.8');
        $writer->endElement();

      }

        $writer->endElement();
        $writer->endDocument();
        echo SITEURL.'sitemap.xml created<br>';

    }


}
于 2014-02-03T05:51:57.487 回答