Codeigniterアプリケーションでサイトマップを生成する必要があります。いくつかのライブラリを見つけましたが、それらはすべて古く、バグがあります。
これには本当に別のライブラリが必要ですか?
Codeigniterでサイトマップを生成する最良の方法を知りたい。
あなたは私のコードを使うことができます:
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";
コードにエラーがある場合は申し訳ありませんが、特にあなたのために作成しました。エラーがある場合は、原理を理解することで簡単に修正できます。
ヘッダーを設定する必要があります:
<?php header('Content-type: text/xml'); ?>
<?= '<?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>
次のようにrobots.txtにサイトマップのリンクを追加することを強くお勧めします。
Sitemap: http://www.yoursite.com/seo/sitemap
CodeIgniterモデルを作成しました。これにより、サイトマップコントローラーから関数を呼び出し、サイトマップへのフィードがすべて完了するとXMLを出力できます。
CodeIgniterモデルを見て、再利用してください。