我想創建一個站點地圖,但我對Sitemaps的用法知之甚少。我使用CakePHP。谷歌和指南上有很多軟件,但我仍然想要問一個簡單的方法來爲CakePHP創建站點地圖。如何爲CakePHP創建站點地圖?
我上傳了網站上的服務器,它不依賴本地主機。
我想創建一個站點地圖,但我對Sitemaps的用法知之甚少。我使用CakePHP。谷歌和指南上有很多軟件,但我仍然想要問一個簡單的方法來爲CakePHP創建站點地圖。如何爲CakePHP創建站點地圖?
我上傳了網站上的服務器,它不依賴本地主機。
這裏有一個例子quick'n'dirty你一起玩,並調整您的需求:
在你的控制器:
public $components = array('RequestHandler');
public function sitemap()
{
Configure::write('debug', 0);
$articles = $this->Article->getSitemapInformation();
$this->set(compact('articles'));
$this->RequestHandler->respondAs('xml');
}
你的 「文章」 的模式:
public function getSitemapInformation()
{
return $this->find('all', array(/* your query here */));
}
查看:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php foreach ($articles as $article): ?>
<url>
<loc><?php echo Router::url(/* generate the URLs here */); ?></loc>
<lastmod><?php echo $time->toAtom(/* last update time here */); ?></lastmod>
<changefreq>weekly</changefreq>
</url>
<?php endforeach; ?>
</urlset>
這是一個良好的開端,現在只需加:
Router::parseExtensions('xml');
到routes.php文件
從那裏,你想有這樣的路線:
Router::connect('/sitemap', array('controller' => 'posts' ....., 'ext' => 'xml'))
,將引導site.com/sitemap.xml到網站地圖所在的控制器/操作。
創建具有正確標題的XML佈局,移動視圖文件的意見/職位/ XML/file.ctp
感謝很多評論 – meotimdihia 2010-09-29 13:53:07
請檢查我的問題我做錯了,還有sitemap.xml空白文件? http://stackoverflow.com/questions/39099791/display-data-from-database-in-sitemap-xml-using-cakephp-2-0?noredirect=1#comment65552181_39099791 – 2016-08-23 14:43:50
更妙的是:添加Router::parseExtensions('xml');
到routes.php文件(沒有錯字)
感謝例如 – meotimdihia 2010-09-25 20:48:06
請記住在您的控制器(或AppController.php中爲應用程序範圍的訪問)添加公共'$ components = array('RequestHandler');'以使其正常工作。 – Coreus 2015-11-12 18:55:23
@Coreus我已經更新了答案,謝謝! – 2015-11-13 21:32:54