PHPでサイトマップを動的に生成する方法
2024/05/22
WordPress等のCMSは使っておらず、自動更新するサイトがあり、そのサイトにサイトマップを設置したかった。WordPressだとプラグインでいけるし更新の少ないサイトであれば以前メモしたような以下のようなサイトを使えば良い。
サイトマップを作成してくれるツール
https://taitan916.info/blog/archives/2228
ソースコード
今回は自動更新だったので動的に生成する場合のメモ。ライブラリとかは使わず最低限のものを直プログラムで書いた。
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<url>
<loc>http://hoge.com/</loc>
<priority>1.0</priority>
<changefreq>daily</changefreq>
</url>
';
//データベース等からページ情報を引っ張ってきてURLのところに貼る。何ページかをループで回す
$sitemap .= '
<url>
<loc>http://hoge.com/?pid=xxx</loc>
<priority>0.8</priority>
<changefreq>daily</changefreq>
</url>
';
$sitemap .= '</urlset>';
file_put_contents($_SERVER["DOCUMENT_ROOT"].'/sitemap.xml', $sitemap); //これだとhttp://hoge.com/sitemap.xmlにサイトマップが置かれる
自動更新のついでに上記ソースが動くようにしておけば良い。
サイトマップを置くことでSEO的にどれぐらい効果あるのかは知らないけど、置かないよりは置いておいた方がよさそう。
関連記事
-
-
phpdotenvライブラリを使用してPHPで.envファイルを読み込ませる方法
CodeIgniterを勉強していた際に各種設定は「.env」というファイルに記 ...
-
-
PHPでログインフォームにひらがな認証を設置する方法
ログインフォームに平仮名認証を設置したい。英数字認証だとSecurimageとい ...
-
-
PHPからWebAPI(screendot)経由で他サイトのスクリーンショットを取得する方法
PHPで他サイトのスクリーンショットを取得したい。今回はライブラリは無しで実現し ...
-
-
PHP8系で「Uncaught TypeError: Unsupported operand types」エラー対応方法
PHP8系で「Fatal error: Uncaught TypeError: ...
-
-
smart_resize_imageで縦横の比率関係なく、固定リサイズ
PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズで使ったs ...