WEB

親ページのSlugからIDを取得して、子ページ一覧を出力する【WordPress】

WordPressでスラッグ名からそのページのIDを取得する方法と、

親ページのIDをスラッグから取得し、その子ページを一覧表示する方法を紹介します。

スラッグからページIDの取得

まずは特定の固定ページのスラッグからIDを取得する方法です。

get_page_by_path()

get_page_by_path()でスラッグを指定することで、その固定ページの情報を取得することができます。

上記では$page_idという変数にget_page_by_path(‘スラッグ’)で取得した固定ページの情報を格納しています。

var_dump($page_id); とすることで、中身を確認できます。

最後に変数をechoしてあげるとIDを取得することができました!

この方法は親ページ・子ページ関係なく固定ページのIDを取得できます。

子ページを一覧で表示する

上記の固定ページのIDを取得する方法を用いて、親ページのIDを取得してその子ページたちを一覧で表示する方法をご紹介します。

まずは先ほどと同じようにIDを取得。

WP_QueryでIDを指定してその子ページを取得

IDを取得できたらWP_queryを使って子ページの一覧を取得します。

WP_Queryには「post_parent」というパラメータが用意されています。

post_parent」は固定ページのIDを指定し、指定した子ページを返します。

つまり、上記のコードで ‘post_parent’ => $page_id と指定することで、親ページのIDを指定することになるのでその子ページを返します。

これで親ページの子ページを取得することができました。

まとめ

WP_Queryで親ページのIDを直接指定して取得することもできます。

ただし、コードを見たときにページIDが書かれていても何のページかも直感的にわかりづらいので、個人的にはページのslugを指定してからIDを取得し変数で呼び出す方がいいのかなと思います。