サイトマップの生成

Cakephpでサイトマップ

cakephpのサイトマップ生成処理について書いてみたい。検索エンジン向けのサイトマップ生成処理をcakephpで行う方法のこと。また、php_domxml.dllをphp.iniで読み込んでおく必要がある。

具体的なコードは以下のような感じ

$this->data = $this->Product->find('all', array(
	'conditions'=>array(
		'Product.status' => '1'
	),
	'sort'=>'datetime',
	'limit'=>'500',
	'order' => 'Product.datetime DESC',
));

$dom = new DOMDocument('1.0', 'utf-8');
$urlset = $dom->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9', 'urlset');
$dom->appendChild($urlset);

$data_c = count($this->data);
for( $i = 0; $data_c > $i; $i++ )
{
	$url = $urlset->appendChild($dom->createElement('url'));
	$loc = $url->appendChild($dom->createElement('loc'));
	
	$loc->appendChild($dom->createTextNode('http://'.DOMAIN.'/'.$this->data[$i]['Product']['id']));
}

$dom->formatOutput = true;
$dom->save('sitemap.xml');

上の例はノードにlocとしてURLの情報のみを記述したサイトマップを生成するコードです。必須の情報は記述できているので有効なサイトマップになってなっている。そのほかのノードを指定する必要がある場合には、以下のGoogleサイトマップの作成に関するページを参考にしてみると良い。

https://support.google.com/webmasters/answer/183668

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

サイトマップの生成の記事にコメントを投稿