1. トップ
  2. ブログ
  3. WordPress
  4. WordPressで同じ親を持つ固定ページのリンク付きリストだけ出力する方法

WordPressで同じ親を持つ固定ページのリンク付きリストだけ出力する方法

ホームページの図です。サイドメニューの部分を赤い丸で強調しています。

実際にやってみてできたので、その方法を紹介します。

wp_list_pages関数

この関数は固定ページのリンク付きリストを出力する関数です。デフォルトだとすべてのページのリストを出力します。パラメータを設定することで出力内容を制御できます。

具体例

例えば、階層ありのカスタム投稿タイプ(固定ページ型)『sukinamono』があるとします。その構成は以下のようになっています。括弧内はページ属性を表します。(親の順序,投稿の順序)

(親なし,0)動物、(0,1)しまうま、(0,2)うさぎ、(0,3)トラ

(親なし、4)食べもの、(4,5)カツ丼、(4,6)天丼、(4,7)親子丼

(親なし,8)おでかけ、(8,9)海、(8,10)山

現在、(4,7)親子丼のページを表示しているとき、(4,5)カツ丼、(4,6)天丼、(4,7)親子丼のページリストを表示します。

手順

その1

現在見ているページの投稿を表示しているWordPressループ内で、get_the_ID関数を用いて、その投稿のIDを取得します。新しく変数を定義し、取得したIDをその変数に代入します(以下、この変数を変数Aと呼びます)。

その2

新しく配列Bを定義します。get_post_ancestors関数で、その親となる投稿IDを取得し、配列Bに代入します。get_post_ancestors関数のパラメータは変数Aです。

その3

この具体例では階層が親と子しかないので、配列B〔0〕には親の投稿IDが入っています。wp_list_pages関数のパラメータ(child_of)にこれを指定すれば、同じ親を持つ子ページのリストが出力されます。