見出し画像

【シェルスクリプト】サイトマップPart2

2023.1.5追記「前回の記事とあわせて、ダブルクォートの扱いを間違えていたので修正しました」

タイトルに山口百恵の「プレイバックPart2」の香りを感じたあなたは昭和の人では? 当然、歌いまくっていた、おばちゃんです。

前回「シェルスクリプトを覚えるのは一時の苦労、一生のラク」で、シェルスクリプトでサイトマップを作ってみましたが、最終更新日が全部同じ日になっている。

SEO 的に最終更新日は正しく記述したほうが良いらしいから、今後のことを考えて、記事毎に記述ができるように修正することにしました。

で、前回のシェルスクリプトに更新日のリスト(配列)を加えてみる↓

"2022-12-01"
"2022-11-01"
"2022-10-01"
"2022-09-01"
"2022-08-01"

# sitemap.sh
# 最終更新日リスト追加
#!/bin/zsh

urls=(
"https://example.com/archive/scones/"
"https://example.com/archive/cupcakes/"
"https://example.com/archive/mince-pies/"
"https://example.com/archive/clotted-cream/"
"https://example.com/"
)

updates=(
"2022-12-01"
"2022-11-01"
"2022-10-01"
"2022-09-01"
"2022-08-01"
)

echo '<?xml version="1.0" encoding="UTF-8"?>' >> sitemap.xml
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' >> sitemap.xml
for ((i=1; i<=${#urls[*]}; i++))
do
  url=${urls[$i]}
  update=${updates[$i]}
  echo -e "\
  <url>\n\
    <loc>$url</loc>\n\
    <lastmod>$update</lastmod>\n\
  </url>"
done >> sitemap.xml
echo "</urlset>" >> sitemap.xml

あんまり代わり映えしないけど、これで最終更新日は記事毎に入ることになりました。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/archive/scones/</loc>
    <lastmod>2022-12-01</lastmod>
  </url>
  <url>
    <loc>https://example.com/archive/cupcakes/</loc>
    <lastmod>2022-11-01</lastmod>
  </url>
  <url>
    <loc>https://example.com/archive/mince-pies/</loc>
    <lastmod>2022-10-01</lastmod>
  </url>
  <url>
    <loc>https://example.com/archive/clotted-cream/</loc>
    <lastmod>2022-09-01</lastmod>
  </url>
  <url>
    <loc>https://example.com/</loc>
    <lastmod>2022-08-01</lastmod>
  </url>
</urlset>

記事のURLアドレスと最終更新日のリストはエクセルで管理がいいかなぁ?(←どこまでも手作り)

WEBデザイナー(自営業)のおばちゃんです。最近はBlenderネタ多めです。