cakephp sitemap

¿Cómo crear un Sitemap para CakePHP?



(3)

Mejor aún: agregue Router::parseExtensions(''xml''); a routes.php (sin el error tipográfico)

Quiero crear un mapa del sitio, pero sé muy poco sobre el uso de Sitemaps. Yo uso CakePHP. Hay un montón de software en google y guías, pero todavía quiero preguntar de todos modos, para una manera fácil de crear mapas de sitio para CakePHP.

Cargué el sitio web en el servidor, no depende de localhost.


Ese es un buen comienzo, ahora solo agregue:

Router::parseExtensions(''xml''); a routes.php

Desde allí quieres tener una ruta como:

Router::connect(''/sitemap'', array(''controller'' => ''posts'' ....., ''ext'' => ''xml'')) que dirigirá site.com/sitemap.xml al controlador / acción donde está el mapa del sitio

crea un diseño xml con los encabezados correctos y mueve el archivo de vista a views / posts / xml / file.ctp


Aquí hay un ejemplo rápido y sucio con el que puede jugar y adaptarse a sus necesidades:

En tu controlador:

public $components = array(''RequestHandler''); public function sitemap() { Configure::write(''debug'', 0); $articles = $this->Article->getSitemapInformation(); $this->set(compact(''articles'')); $this->RequestHandler->respondAs(''xml''); }

Su modelo de "Artículo":

public function getSitemapInformation() { return $this->find(''all'', array(/* your query here */)); }

Ver:

<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>