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サイトマップの作成に関するページを参考にしてみると良い。