Rapls Sitemap

説明

Rapls Sitemap は、訪問者が目的の場所を見つけるための「目次」ページを作ります。固定ページは実際の階層のまま、投稿はカテゴリーごとに、そのほかも必要なだけ並べられます。[rapls_sitemap] ショートコードかサイトマップブロックを置けば、サイトが育つのに合わせてページが作り直されます。

これは人が読むためのサイトマップであり、検索エンジンが読む XML サイトマップではありません。XML は WordPress 自身が wp-sitemap.xml として出力するので、本プラグインはそこには手を出しません。

PS Auto Sitemap (2022 年に公開停止) と WP Sitemap Page の、メンテナンスされている代替としてゼロから書きました。どちらも公開されているインターフェースを再現しているので、既存のサイトマップページは本文を書き換えなくてもそのまま動きます。

Rapls Sitemap が選ばれる理由

  • 1 か所で、ページ全体。固定ページ・投稿・カテゴリー・投稿者・日付アーカイブを、それぞれの見出しの下に順番に、1 つのショートコードから。
  • すぐ始められて、必要なら深く。設定画面は基本設定タブから開きます。ここには、サイトマップを作るのに欠かせない決めごとだけがあります。残りはタブ 1 つ隣で、初期値以外が入っているパネルは自動で開きます。
  • 打ち切った一覧は、打ち切ったと書きます。件数上限で一覧が途中で切れた場合、その旨を出力に書きます。
  • 大規模サイトのための設計。投稿タイプごとに 1 回の問い合わせ、3 種類の問い合わせすべてに上限、そして内容が変わると自分で消える描画キャッシュ。
  • フロントエンドにクレジットリンクを出さず、管理画面に広告も出しません。

一覧にできるもの

  • 固定ページを親子階層のまま、指定した深さまで。
  • 投稿。カテゴリーごとにまとめることも、子カテゴリーを入れ子にすることもできます。
  • カテゴリー・タグ・タクソノミー。その下の項目を出しても、出さなくてもかまいません。
  • 投稿者をユーザー ID と権限グループで絞り込み、日付アーカイブを年と月で。
  • ナビゲーションメニュー# のプレースホルダー項目は、行き先のないリンクではなく見出しとして出力します。
  • カスタム投稿タイプとカスタムタクソノミー。ただしフロントエンドで閲覧できるものに限ります。閲覧できないものは、どこから指定されても一覧に出しません。そのページは 404 になるからです。

表示するものを選ぶ

  • 階層の制限と、「このページの下だけを一覧にする」範囲指定。ショートコードなら、現在のページや 1 つ上のページに解決させられます。
  • 投稿・カテゴリー・ユーザーを ID で、あるいは投稿タイプやタクソノミーごと除外できます。親を除外すると、その子も一緒に外れます。
  • サイトマップ自身のページ、パスワード保護された項目、個別に noindex を指定した項目を除外できます。
  • 公開日で絞り込めます。1 学年分のサイトマップにも使えます。その期間の記事を持たないカテゴリーは、一緒に消えます。
  • 件数上限は、リストごと・カテゴリーごとに指定でき、開始位置もずらせます。

並び順とデザイン

  • 項目の並び順は、日付、タイトル、ID、ページの並び順、更新日、コメント数、ランダム、カスタムフィールドから選べます。カスタムフィールドは、日本語のタイトルを正しいかな順に並べるための手段です。カテゴリー見出しは名前、件数、スラッグ、ID で並べ替えられます。
  • CSS プリセット 27 種と「スタイルなし」。自分で書きたいテーマのために用意しています。
  • 「基本設定」タブにある 5 段階の文字の大きさスライダー。どのサイトも必ず一度は触る、見た目の設定です。
  • フォントサイズ・行間・字下げ・リンクの色・下線・段組みを、プリセットの上に重ねられます。フォントサイズは長さの直接指定なので、スライダーより優先されます。
  • 箇条書きの記号は、黒丸・白丸・四角・絵文字、または Font Awesome などのアイコンクラス。最上位と下の階層で別々に指定できます。
  • セクションとカテゴリーのラベルを、本物の h2h6 見出しとして出力。スクリーンリーダーの利用者はこれを辿って移動します。
  • 設定画面のクラス一覧。カスタマイザーの「追加 CSS」やテーマから、出力された要素を指定できます。

PS Auto Sitemap / WP Sitemap Page からの移行

サイトマップページの本文を書き換えずに乗り換えられます。どちらのプラグインのコードも使っておらず、公開されているインターフェースだけを再現しています。どちらの項目も初期状態ではオフです。頼まれてもいないのに他のプラグインの記法に応答するのは、驚きでしかないからです。

  • WP Sitemap Page から[wp_sitemap_page] とその only の値を認識します。WP Sitemap Page 自体が有効なあいだはショートコードを横取りしないので、2 つが取り合うことはありません。
  • PS Auto Sitemap から — ページ本文に残った <!-- SITEMAP CONTENT REPLACE POINT --> コメントを認識します。保存されている設定もボタン 1 つで読み込めます。読むだけで、書き換えることはありません。

noindex 連携

個別に noindex を指定した項目は除外できます。設定なしで次を読みます: Yoast SEO、Rank Math、SEO SIMPLE PACK、SEOPress、The SEO Framework、All in One SEOCocoon テーマ。カテゴリー・タグ・投稿者についても、その項目自体が一覧の対象になっている場合は読みます。

投稿タイプ・タクソノミー・アーカイブの全体に対する初期値は読みません。それらの一覧は選んだから出ているのであり、SEO プラグインの初期値でその一覧が空になっては困るからです。たとえば Yoast は、日付アーカイブを初期状態で noindex にします。

パスワード保護された項目は、一覧に残るかどうかにかかわらず抜粋を出しません。その本文は誰にでも見せてよいものではなく、この出力はキャッシュされて共有されるためです。

拡張する

設定では届かないところは、開発者向けフィルターで補えます。rapls_sitemap/query_args もその 1 つで、投稿タイプごとの問い合わせを実行前に渡します。記述例はプラグインページにあります。

多言語

WPML と Polylang は設定なしで動きます。どちらも投稿とタクソノミーの問い合わせを現在の言語に絞り込みますが、本プラグインはそのフィルターを無効にしません。描画キャッシュはロケールごとに分かれるので、ある言語の内容が別の言語に配信されることはありません。

詳しくは: プラグインの詳細と開発者向けリファレンス | ソースコード (GitHub)

スクリーンショット

ブロック

このプラグインは1個のブロックを提供します。

  • Sitemap A table of contents for the whole site.

インストール

  1. プラグイン画面からインストールするか、rapls-sitemap フォルダーを /wp-content/plugins/ にアップロードしてください。
  2. プラグインメニューから有効化してください。
  3. 設定 Rapls Sitemap を開き、何を一覧にするかを選んでください。
  4. サイトマップを置きたいページに [rapls_sitemap] を貼るか、サイトマップブロックを追加してください。

他のサイトマッププラグインからの移行

  1. 本プラグインを有効化し、旧プラグインを停止してください。
  2. 設定 Rapls Sitemap 詳細設定 他のプラグインからの移行を開き、移行元のプラグインに合う項目をオンにしてください。
  3. PS Auto Sitemap からの場合は、画面の下にある「PS Auto Sitemap から読み込む」を使ってください。
  4. ページを確認し、読み込みでは近づけるしかなかったところを調整してください。デザインは再現ではなくもっとも近いプリセットに割り当てられ、「分割」モードはカテゴリーだけの一覧になります。

FAQ

Is this the XML sitemap for search engines?

違います。本プラグインが作るのは、訪問者が読む HTML ページです。XML サイトマップは WordPress 自身が wp-sitemap.xml として出力し、本プラグインはそこには手を出しません。

Can one placement show pages, posts, categories and authors together?

できます。そして、それが多くのサイトマップページに求められる形です。必要なセクションにチェックを入れると、それぞれの見出しの下に順番に並びます: [rapls_sitemap sections="page,post,category,author,archive"]

Can I list a navigation menu instead?

できます。「表示する対象」でナビゲーションメニューを選ぶか、ショートコードで menu="global-nav" のように名前を指定します。メニューはそれ自身の並び順とラベルのまま出力します。その並び順は誰かが決めたものだからです。sections="menu:global-nav,menu:footer-nav" と書けば、複数のメニューを 1 つのサイトマップに並べられます。

Can I list only the pages under one page?

できます。一覧にする範囲にページ ID を入れるか、ショートコードで 2 つの語のどちらかを指定します。child_of="current" は、そのショートコードが置かれているページに解決します。1 つのテンプレートが、ステージングでも本番でもそのまま動きます。child_of="parent" は 1 つ上のページに解決します。

Can I make a sitemap for one year?

作れます。date_afterdate_before で公開期間を指定します。どちらも指定日を含み、片方だけの指定もできます。書式は YYYYYYYY-MMYYYY-MM-DD のいずれかです。それ以外は、存在しない日付も含めて指定なしとして扱います。誰も意図していない日付で絞り込むよりは、絞り込まないほうが安全だからです。

Will it cope with a large site?

対応します。ただし設定した上限の範囲内です。サイトマップは全件を一度に要求するため、その問い合わせでメモリーを使い切らないよう上限を設けてあります。投稿・タクソノミー・ユーザーのいずれの取得にも適用され、初期値は 2000 件です。途中で打ち切られた一覧は、必ずその旨を出力に書きます。黙って短くなったサイトマップは、遅いサイトマップより始末が悪いからです。

Does it print a credit link on my site?

出しません。プラグインや作者へのリンクをフロントエンドに出力することは一切ありません。

Does it work with a screen reader?

サイトマップはラベル付きの nav ランドマークとして出力されます。セクションやカテゴリーのラベルも、見た目を整えただけの文字ではなく本物の h2h6 見出しにできます。スクリーンリーダーの利用者は見出しを辿ってページを移動するので、目次であるこのページでは特に効きます。

評価

このプラグインにはレビューがありません。

貢献者と開発者

Rapls Sitemap はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“Rapls Sitemap” は1ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“Rapls Sitemap” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。

変更履歴

0.1.2

  • 「文字の大きさ」が「基本設定」タブの 5 段階スライダーになりました。「詳細設定」タブのフォントサイズを指定した場合は、引き続きそちらが優先されます。

0.1.1

  • 初回リリース。