xmlサイトマップをPHPで自作

スポンサーリンク

xmlファイルを自分で作る場合のテンプレート

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>https://○○○.com/index.html</loc></url>
<url><loc>https://○○○.com/page1.html</loc></url>
<url><loc>https://○○○.com/page2.html</loc></url>
</urlset>

URLの一覧がデータとしてあればxmlサイトマップファイルを自作することも簡単。

例えば各ページのファイル名がカンマ区切りのcsvファイルに格納されていたとする。

データ例(data.csv)
index.html,トップページ
page1.html,自己紹介ページ
page2.html,製品紹介ページ

これをphpで読み込んでxml形式に整えてタグを出力する。
独自関数にしてフォルダ別に保存されたdata.csvに対しても使用可能にする。

<?php
function xml_prev($dir){
$data = $dir . "data.csv";
$f = fopen($data,"r");
  while($line = fgetcsv($f)){
echo <<< eof
<url><loc>https://○○○○/{$dir}{$line[0]}</loc></url>

eof;
  }
fclose($f);
}

page_prev("");
page_prev("dir1/");

?>

タグが出力されたらそれをコピーして、sitemap.xmlファイルにペーストして保存。
そのxmlファイルをサーバーにアップロードしてサーチコンソールで登録すれば終了。

スポンサーリンク

フォルダ内にあるhtmlファイルを一覧で自動出力

ファイル名一覧を保存していない場合でも、PHPを使って自動で出力できる。
echo <<< eof 内を変更すれば出力の整形ができる。

function file_echo($dir){
  $filelist = glob($dir . '*.html');
  foreach ($filelist as $file) {
  if (is_file($file)) {
  echo <<< eof
  {$file}

  eof;
  }
  }
}
file_echo(""); //ルートディレクトリ内にあるhtmlファイルを出力
file_echo("dir1"); //ディレクトリ「dir1」内にあるhtmlファイルを出力
PHP
スポンサーリンク

コメント

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