使っていたプラグインが、ある日ダウンロードできなくなったことはありますか。
PS Auto Sitemap がそうでした。HTMLサイトマップの定番だったプラグインで、2022年に公開が停止されています。いま検索すると、代替を紹介する記事がいくつも出てきますが、どれも「PS Auto Sitemap は使えなくなりました」から始まっている。4年経っても、置き換え先が定まっていません。
それで、作りました。この記事で紹介する Rapls Sitemap は、筆者が開発しているプラグインです。宣伝を含む記事になりますが、作るときに迷ったところも一緒に書くので、そのつもりで読んでください。

固定ページの階層と、カテゴリー別の記事一覧が、ひとつのページに並びます
まず、どっちのサイトマップの話か
サイトマップには2種類あって、混同しやすいところです。
ひとつは検索エンジンに読ませるXMLサイトマップ。これは WordPress が最初から作ってくれます。wp-sitemap.xml というアドレスで、プラグインを入れなくても出ています。
もうひとつが、訪問者が読むHTMLサイトマップ。サイトの目次にあたるページです。PS Auto Sitemap がやっていたのはこちらで、この記事の話も全部こちらです。
Rapls Sitemap は XMLサイトマップには一切触りません。WordPress が出しているものを、そのままにしておきます。
ページの中身を、書き換えずに乗り換える
プラグインを乗り換えるとき、いちばん面倒なのが、固定ページの中身を直す作業です。
PS Auto Sitemap を使っていた方は、サイトマップのページに、こういうコメントが入っているはずです。
<!-- SITEMAP CONTENT REPLACE POINT --> WP Sitemap Page を使っていた方なら、[wp_sitemap_page] というショートコードが入っています。
Rapls Sitemap は、この両方をそのまま認識します。ページを開いて書き換える必要がありません。乗り換えたあとも、同じページが表示され続けます。
ただ、この機能は初期状態ではオフにしてあります。理由は単純で、他のプラグインの書き方に勝手に反応するのは、驚かせるからです。設定画面で「他のプラグインから移行する」を開いて、自分で有効にしてもらう形にしました。
WP Sitemap Page については、もうひとつ気をつけたことがあります。あちらのプラグインが有効なあいだは、ショートコードを横取りしません。両方入っている状態で取り合いになると、どちらが表示しているのか分からなくなるからです。
PS Auto Sitemap の設定は、読み込める
設定画面の下に「PS Auto Sitemap から取り込む」というボタンがあります。押すと、以前の設定を読んできます。
読むだけで、書き込みはしません。元のプラグインのデータには触らないので、うまくいかなければ戻せます。
ただし、そのままにはならない部分もあります。デザインは、いちばん近いものに合わせるだけで、完全な再現ではありません。「分割」の表示も、カテゴリーだけの一覧に変わります。取り込んだあと、ページを一度見て、気になるところを直してください。
移行の手順

ここを開いて、使っていたプラグインに合わせて切り替えます
順番はこうなります。
- Rapls Sitemap を有効化して、以前のプラグインを停止します
- 「設定 → Rapls Sitemap → 詳細 → 他のプラグインから移行する」を開いて、使っていたプラグインの項目をオンにします
- PS Auto Sitemap からなら、画面の下にある「PS Auto Sitemap から取り込む」を押します
- サイトマップのページを開いて、表示を確認します
この順番で、固定ページの中身は一度も触りません。
ゼロから作る場合
新しく作るなら、もっと簡単です。
プラグインを有効化して、「設定 → Rapls Sitemap」で何を載せるか選ぶ。そのあと、サイトマップにしたい固定ページに と書くか、ブロックエディタで「Sitemap」ブロックを置く。それだけです。
設定画面は、最初に「基本」のタブが開きます。ここには、サイトマップを作るのに必ず要る8項目だけを置きました。何を載せるか、どこまでの深さか、何を除くか、どのデザインか、文字の大きさはどれくらいか。
細かい設定は「詳細」のタブにまとめてあります。初期値から変えた項目があるパネルだけ、自動的に開くようにしてあるので、自分がどこを触ったかが分かります。
何を載せられるか
ひとつのショートコードで、複数の種類をまとめて出せます。
固定ページは、親子の階層のまま。投稿は、カテゴリー別にまとめることもできます。ほかに、カテゴリー・タグ、投稿者、年月別のアーカイブ、そしてナビゲーションメニュー。
メニューを載せられるようにしたのは、あの並び順が、誰かが考えて決めたものだからです。自動で並べ替えるより、そのまま出したほうがいい場面があります。
カスタム投稿タイプにも対応していますが、ひとつだけ例外があります。サイトの表側で表示できない設定になっている投稿タイプは、何を指定しても一覧に出しません。出したところで、クリックすると404になるからです。
作るときに、いちばん迷ったこと
ここからは、宣伝というより、判断の話です。
途中で切れたら、切れたと書く
記事が何千件もあるサイトだと、サイトマップは重くなります。全部を一度に取りに行くので、上限を決めておかないとメモリが足りなくなる。初期値は2000件にしてあります。
問題は、上限に当たったときにどうするかでした。
黙って途中で止めることもできます。見た目はきれいです。でも、それをやると、サイトの持ち主は一覧が完全だと思い込んだままになる。
なので、切り詰めたときは、出力にそう書くようにしました。表示は少し不格好ですが、黙って短いサイトマップより、遅いサイトマップのほうがましだと思っています。
noindex を、どこまで読むか
これがいちばん悩みました。
SEOプラグインで「この記事は検索に出さない」と指定したものは、サイトマップからも外したい。Yoast SEO、Rank Math、SEO SIMPLE PACK、SEOPress、The SEO Framework、All in One SEO、それと Cocoon テーマ。この7つは、設定なしで読めるようにしました。
ただ、読まないことにしたものがあります。投稿タイプ全体や、アーカイブ全体にかかっている既定の設定です。
たとえば Yoast SEO は、日付アーカイブを初期状態で noindex にします。これを読んでしまうと、利用者が「年月別アーカイブを載せる」と選んだのに、一覧が空っぽになる。選んだ本人の指定より、プラグインの初期値が勝ってしまいます。
個別に指定したものは読む。全体にかかっている既定は読まない。この線で分けました。
フロントに、自分の名前を出さない
サイトの表側に、プラグインへのリンクや作者名を出さないようにしました。管理画面にも広告を置いていません。
余談ですが、これは無料プラグインだと珍しくない仕様です。ただ、入れてみるまで分からないことが多い。使う側からすると、そこがいちばん気になるところなので、先に書いておきます。
日本語のサイトで効くところ
並び順に、カスタムフィールドを使えるようにしてあります。
日本語のタイトルをタイトル順で並べると、漢字の文字コード順になって、五十音順にはなりません。読みがなを入れたカスタムフィールドを用意して、それで並べると、意図した順番になります。
もうひとつ、WPML と Polylang は設定なしで動きます。表示中の言語に絞って一覧を作りますし、キャッシュも言語ごとに分けてあるので、別の言語のものが出ることはありません。
読み上げソフトのこと
見出しの扱いを、設定で変えられるようにしました。
セクションやカテゴリーの見出しを、見た目だけ大きくした文字ではなく、本物の見出しタグとして出力できます。読み上げソフトを使う方は、ページの中を見出しで移動するので、ここが本物かどうかで使いやすさが変わります。
サイトマップは、目的のページを探すためのページです。探すための道具が探しにくいのは、たぶんいちばん困ります。
デザインは27種類

「装飾なし」も選べます
あらかじめ用意したデザインが27種類あります。それと「装飾なし」。テーマ側で自分で書きたい方のために、何も当てない選択肢を入れました。
文字の大きさは、基本のタブに5段階のスライダーを置いています。細かく数値で指定したい方は、詳細のタブで指定できて、そちらが優先されます。
行間、字下げ、リンクの色、下線の有無、段組みの数も変えられます。箇条書きの記号は、丸や四角のほかに、絵文字や Font Awesome のようなアイコンも使えます。
ダウンロード
WordPress の管理画面から「Rapls Sitemap」で検索するか、こちらから入手できます。
設定の詳しい説明と、開発者向けの情報はこちらにあります。
冒頭の話に戻ります。
使っていたプラグインが公開停止になると、動いているうちは困りませんが、いつか WordPress の更新で止まります。そのとき慌てて探すより、動いているうちに移しておくほうが楽です。
ページの中身を書き換えずに移せるようにしたのは、その「いつか」を先延ばしにしている方が多いだろう、と思ったからでした。

