[CodeIgniter2] サイトマップを作る

公開
更新日

スポンサーリンク

CodeIgniterでサイトマップを作成する方法のまとめです。サイトマップは検索エンジン向けのサイトマップの方の話です。

controllerとviewファイルの作り方はstack overflowに良い作例があるので使わせてもらいます。

Sitemap generation with Codeigniter – Stack Overflow
controllers/seo.php
Class Seo extends CI_Controller {
  function sitemap()
  {
      $data = "";//select urls from DB to Array
      header("Content-Type: text/xml;charset=iso-8859-1");
      $this->load->view("sitemap",$data);
  }
}
views/sitemap.php
<?= '<?xml version="1.0" encoding="UTF-8" ?>' ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc><?= base_url();?></loc> 
    <priority>1.0</priority>
  </url>

  <!-- My code is looking quite different, but the principle is similar -->
  <?php foreach($data as $url) { ?>
  <url>
    <loc><?= base_url().$url ?></loc>
    <priority>0.5</priority>
  </url>
  <?php } ?>
</urlset>
config/routes.php
$route['seo/sitemap\.xml'] = "seo/sitemap";

分かりやすいですなー。ありがたいことです。

ただ、これだとURLとpriorityしかないかなりシンプルなサイトマップなので、最終更新日や更新頻度なども入れるなら以下のようなかんじで自分好みのものに変えていけば良いです。

$data[] = array(
  'url' => '',
  'priority' => 0.5,
  'lastmod' => '2014-10-20 18:37:00',
  'changefreq' => 'hourly'
);

header("Content-Type: text/xml;charset=iso-8859-1");
$this->load->view("sitemap", array('data'=>$data) );
views/sitemap.php
<?= '<?xml version="1.0" encoding="UTF-8" ?>' ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc><?php echo  base_url();?></loc> 
    <priority>1.0</priority>
  </url>

  <?php foreach($data as $url) { ?>
  <url>
    <loc><?php echo base_url().$url ?></loc>
    <priority><?php echo $priority;?></priority>
    <lastmod><?php echo $lastmod;?></lastmod>
    <changefreq><?php echo $changefreq;?></changefreq>
  </url>
  <?php } ?>
</urlset>

スポンサーリンク


Comment