勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPでサイトマップを動的に生成する方法

   2024/05/22  PHP

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的にどれぐらい効果あるのかは知らないけど、置かないよりは置いておいた方がよさそう。

 - PHP

  関連記事

PHPからDBX Platformを利用してDropbox内のファイルを削除する方法
PHPからDBX Platformを利用してDropbox内のファイルを削除する方法

以前にPHPからDropboxのファイル一覧のデータ(ファイル名や更新日時等)を ...

smart_resize_imageで縦横の比率関係なく、固定リサイズ
smart_resize_imageで縦横の比率関係なく、固定リサイズ

PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズで使ったs ...

PHPからCSVファイルを出力する際にメモリを節約する方法
PHPからCSVファイルを出力する際にメモリを節約する方法

MySQLよりデータを大量に取り出してCSVファイル化し、ダウンロードさせるとい ...

MySQLでランダムにデータを取得しつつページング機能も実装する方法
MySQLでランダムにデータを取得しつつページング機能も実装する方法

MySQLからデータを持ってくる際にランダムな表示を行ってほしいと言われた。ただ ...

PHPにて「みんなの自動翻訳」のAPIで指定したテキストの言語判定する方法
PHPにて「みんなの自動翻訳」のAPIで指定したテキストの言語判定する方法

迷惑メール対策等でメール本文が日本語のもののみ受信したい場合がある。ただ、本文内 ...