【WordPress】URLのパラメータ

この記事はブログとプログラミングで生計をたてている海外在住ウェブディベロッパーがわかりやすさにこだわって作成しました

WordPressのPOSTデータの一覧表示や絞り込みなどを行う場合、WordPressのURLパラメータを設定するのが便利です。

しかし、WordPressのドキュメントで綺麗にまとまっているところが見当たりません。そこで色々探していたところ、WORDPRESS高速化パッケージKUSANAGIを提供しているプライム・ストラテジー様のブログにURLのパラメータのまとめ記事が掲載されていましたので引用させていただきました。

パラメータの理解

パラメーター名役割指定例
m日時201304
p投稿のID1234
posts不明
w12
catカテゴリーのterm_id1
withcommentsコメントフィード関連1
withoutcommentsコメントフィード関連0
sサイト内検索の検索文字列WordPress
search不明
exact検索時完全一致にするかどうか1
sentence検索文字列の分解を行うか1
calendar不明
pageページ分割時のページ送り数3
pagedアーカイブページのページ送り数5
moremoreの表示1
tbトラックバック1
pb不明
author作成者のユーザーID2
orderアーカイブの昇順・降順asc
orderbyアーカイブの順列date
year2013
monthnum4
day16
hour20
minute21
second23
name投稿スラッグ hello-world
category_nameカテゴリースラッグuncategorized
tagタグのterm_id4
feedフィードの種類rss2
author_name作成者名omagari
static不明
pagename固定ページのスラッグsample-page
page_id固定ページのID2
errorレスポンスコード?404
comments_popupコメントポップアップ
attachmentメディアのスラッグkoara
attachment_idメディアのID11094
subpostattachmentのエイリアス
subpost_idattachment_idのエイリアス
previewプレビューかどうか1
robotsロボットテキストかどうか1
taxonomy分類category
term分類のスラッグuncategorized
cpageコメント分割時のページ送り数4
post_type投稿タイプスラッグcustom_post

この標準で利用できるパラメーターは、wp-includes/class-wp.php の最初に記述されている、WP クラスのメンバー変数、$public_query_vars として定義されています。

URLからパラメーターへの変換 – リライトルール –

パーマリンクの設定をデフォルト以外にした場合、アクセスされたURLを元にしてパラメーターに変換を行っています。

例えば、 https://www.prime-strategy.co.jp/wp/2499/ は、内部的に、 https://www.prime-strategy.co.jp/index.php?p=2499 に変換されてから処理されています。

url-mapping

では、どうやってパラメーターへの変換を行っているのでしょうか?
WordPress は、デー タベース上に表示可能なURLのパターンとパラメーターへのマッピングデータを持っています。これをリライトルールと言います。
マッピングデータというからには、あのパターンはこの変換、このパターンはこの変換といったように、複数の変換ルールによって構成されています。例示するとインストール直後にパーマリンク設定を行った時点での変換ルールは68通りとなります。

リライトルールの変換方法

リライトルールは、URLパターンの正規表現をキーとした連想配列で構成されています。
この連想配列をループ処理によって、順繰りに先頭からURLとの照合処理を行い、最初に合致した変換ルールを採用します。つまり、リライトルールの中に複数合致するものがあったとしても、より先にある変換ルールが採用されるというわけです。
たとえば、カテゴリーのURLと同じになる固定ページを作ったとしても、カテゴリーが表示されるのは、カテゴリーの変換ルールが先に記述され変換ルールとして採用されるためです。

採用された変換ルールの確認

想定したURLにアクセスしても、意図したとおりの表示にならなかった場合、まずは、この変換ルールが正しく行われているか確認しましょう。
確認するのには、Debug Bar と Debug Bar Extender を使うと、ブラウザ上から簡単に確認することができます。

想定したURLにアクセスして、Debug 表示のRequest メニューを見ると、リクエストされたURL(Request )、採用された変換ルール(Matched Rewrite Rule )と変換されたパラメーター(Matched Rewrite Query )が分かるようになっています。

debug-request

図の場合は、archives/2593 というリクエストに対して、archives/([0-9]+)(/[0-9]+)?/?$ という変換ルールが合致し、p=2593&page= へと変換されたということになっています。

PHP/Javascript/WORDPRESS案件全般承ります

オーストラリアで主に日系企業や個人のお客様からのご依頼でお仕事をしております。この記事についてのご質問またはお困りのことがございましたら、お気軽にお問い合わせください。

タイトルとURLをコピーしました