開発ブログ

WWWクリエイターズが送る、Git、CSS、HTML、コマンドライン、Macの便利機能など、開発に関する役立ち情報発信します。気まぐれに更新。

WordPressで、スラッグ(slug)から固定ページを取得する

最終更新:2017-06-23 by Joe

WordPressのページを、スラッグ(slug)を使って文字列を取得する方法です。

念のため、スラッグとはURLのパスの事です。たとえば「https://my-blog.com/the-page-slug」というURLであれば、「the-page-slug」という文字列部分が、いわゆるスラッグです。

スラッグからページを取得する関数

関数にしました。やっている事は極めてシンプルです。説明のシンプルのため、エラーセーフ行はほとんど省いています

get_posts()関数は、投稿オブジェクトの配列を返してくるので、必要な最初の要素だけを参照してやります。扱いやすいように、見つからなければfalseです。

投稿をクエリして取得する時の注意

よくある間違い(?)が、query_posts()を使ってしまう例です。query_postsはメインクエリを操作する関数ですので、今回のようなカスタムクエリに使う代物ではありません。

正しいワードプレスの知識に基づけば、あなたが、query_postsを使う事は(ほぼ)絶対にないはずです。

スラッグってなんなのさ

このスラッグは、ワードプレスのpostテーブル(投稿を格納するテーブルです。)にカラムとして格納されています。1投稿(ページ)あたり1スラッグ、格納する場所が最初から用意されているってことですね。

postテーブルのカラム、貼っておきます。「post_name」ってのがそれですね。スラッグで投稿をクエリする、というのは、post_nameでマッチするやつをクエリする、というそれだけの処理です。

 

スラッグとページ取得に関する参考リンク