【PHP】PHPでサイトマップを出力してみるサンプル

投稿者:

はじめに

https://maya-pg.net/2019/10/04/2019-10-04-130708/

続き。
軽くサイトマップの出力ソースを公開します。

基本仕様

  • LAMP
  • ブログっぽくデータベースに可変ページが追加されるタイプ
  • 今度は固定ページと可変ページを入れる
  • 可変ページの一覧は前もって取得してある

なお出力ページ一覧(固定、可変とも)の仕様

urlhttps://から始まるURL

ソースコード

$url = 'サービスのURL';
$title = 'サービスのタイトル';
$static_pages = array();
$variable_pages = array(); // 可変のページを取得してください
header("Content-Type: text/xml; charset=utf-8");
// 出力するページのContent-Typeを定義
// 待て早まるな私は怪しいものではないサイトマップだと宣言
echo '<?xml version="1.0" encoding="utf-8" ?>';
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
echo "<url>";
echo "<loc>".$url."</loc>";
echo "<lastmod>".date('Y-m-d')."</lastmod>";
echo "<priority>1.0</priority>";
echo "<changefreq>always</changefreq>";
echo "</url>";
//  固定ページのforeach
foreach($static_pages as $key=>$val){
	echo "<url>";
  	echo "<loc>".$val."/</loc>";
 	 echo "<lastmod>".date('Y-m-d')."</lastmod>";
  	echo "<priority>0.9</priority>";
 	 echo "<changefreq>always</changefreq>";
	echo "</url>";
}
//  可変ページのforeach
foreach($variable_pages as $key=>$val){
	echo "<url>";
  	echo "<loc>".$val."/</loc>";
  	echo "<lastmod>".date('Y-m-d')."</lastmod>";
  	echo "<priority>0.9</priority>";
  	echo "<changefreq>always</changefreq>";
  	echo "</url>";
}
// よしなにタグを閉じてやります
echo '</urlset>';

以上、どなたかのお役に立てれば。

ちなみにCodeIgniterでsitemap.xmlというURL、.xml拡張子で出力したい場合がありますが、ウチでは何も考えずに

$route['sitemap.xml'] = 'サイトマップを作るコントローラー';

と記述しておりますwこれでよしなに対応していただけます。

*なおコピペしたままではご自身の環境で正しく動作しない可能性があります。

コメントを残す