sitemap.inc.php

名称サイトマップ生成プラグイン
ファイルsitemap.inc.php
バージョン1.00
対象サーバーPukiWiki 1.5.3 / PHP 7.4 / UTF-8
ライセンスGPLv3

サイトマップXMLを生成するPukiWiki用プラグイン。

インストール

sitemap.inc.php
3.9KB | 2020-05-26

sitemap.inc.phpPukiWikipluginディレクトリに配置してください。

使い方

(ウィキのURL)?plugin=sitemap

本プラグインによるこのサイトのサイトマップはこちら

設定

コード内の下記の定数で動作を制御することができます。

定数名既定値意味
PLUGIN_SITEMAP_PAGE_ALLOW文字列対象ページ名を表す正規表現
PLUGIN_SITEMAP_PAGE_DISALLOW文字列'^(Pukiwiki\/.*)$'除外ページ名を表す正規表現
PLUGIN_SITEMAP_FILE文字列出力ファイル名(例:'sitemap.xml')

処理の詳細

列挙するのは次のすべての条件で絞り込まれたページです。特殊なページを省くなど、サイトマップを制御したいかたは条件を調整してください。正規表現の知識が必要です。

  1. RecentChangesページを除外する
  2. pukiwiki.ini.php 内 $non_list で指定されたページを除外する
  3. PLUGIN_SITEMAP_PAGE_ALLOW定数が空でなければ、それが表すページのみを対象とする
  4. PLUGIN_SITEMAP_PAGE_DISALLOW定数が空でなければ、それが表すページを除外する(デフォルトでは「Pukiwiki/」から始まるページを除外)
  5. 閲覧不可のページを除外する

サイトマップは専用のキャッシュファイル cache/sitemap.dat に保存し、次回から処理を省略します。cache/recent.dat のタイムスタンプを参照し、ページの編集・増減を検知したら数え直します。もしプラグイン内の定数やコードを書き換えて条件を変更したら、キャッシュファイル cache/sitemap.dat を削除するか適当なページを編集して強制的にキャッシュを更新してください。

謝辞

次のプラグインを参考にし、コードを一部流用させていただきました。

rss.inc.php : Copyright 2003-2017 PukiWiki Development Team, License: GPL v2 or (at your option) any later version

default.ini.phpへの設定

本プラグインの定数設定(ファイル内の下記のような行)は、PukiWikiルートディレクトリにある標準設定ファイルdefault.ini.phpにも記述することができます。本プラグインの定数設定行をdefault.ini.phpの末尾にそのままコピーしてください。default.ini.php側の設定値が優先されます。

/////////////////////////////////////////////////
// ○○プラグイン設定(○○.inc.php)
if (!defined('PLUGIN_○○_×××)) define('PLUGIN_○○_×××', △);

設定をdefault.ini.phpに記述することで、プラグインをアップデート(ファイル上書き)するたびに値を書き直す必要がなくなります。また、設定がdefault.ini.phpに集中することで、運用中の設定管理も楽になります。

凡例

プラグインの引数は下記の書式で表現しています。

  • [] … 省略でき必要に応じて記述します
  • | … |で区切られた項目のうち1つを記述します
  • {} … 中カッコ内の引数は任意の順序で記述できます