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

研究
brotiN biswaS at Pexels
この記事は約4分で読めます。

この記事は2年前の記事です。当時の情報、理解に基づいておりますのでご留意ください

はじめに

【PHP】PHPでRSSを出力してみるサンプル
はじめに作ると言いつつ作っていなかったのでサイトマップと並べて30分で提出いたしました。その報告だけだとなんなので軽くRSSの出力ソースを公開します。基本仕様LAMPブログっぽくデータベースに可変ページが追加される...

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

基本仕様

  • 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これでよしなに対応していただけます。

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

コメント

タイトルとURLをコピーしました