WordPress 固定ページの子ページ一覧の表示方法

WordPress で固定ページの親ページに紐づく、子ページ一覧の表示方法を紹介します。
例えば、グローバルナビ内の親ページに紐づく、子ページ一覧を表示したい時に便利な方法です。

  1. 親ページに紐づく子ページ一覧の表示方法
  2. ページスラッグで子ページ一覧を表示する方法
    1. 対象の固定ページに親が存在する場合

親ページに紐づく子ページ一覧の表示方法

親ページに紐づく子ページ一覧を表示する場合は、テンプレートタグの wp_list_pages を使用します。
次のコードは、親ページのページIDが 321 の場合の子ページ一覧の表示方法です。

<?php // 固定ページの子ページ一覧を表示
$children = wp_list_pages('title_li=&child_of=321&echo=0'); // 固定ページのIDを指定
if($children){ // 子ページがあれば一覧を表示
echo '<ul>';
echo $children;
echo '</ul>';
}
?>

ページスラッグで子ページ一覧を表示する方法

ページスラッグを元に子ページ一覧を取得する場合は、テンプレートタグの get_page_by_path を使用します。
次のコードは、親ページのスラッグが profile の場合の子ページ一覧の表示方法です。

<?php // 指定したIDの子ページ一覧を表示
$page_ID = get_page_by_path('profile'); // ID取得用の固定ページオブジェクトの取得
$children = wp_list_pages(array( // 固定ページのリストの取得
'title_li' => '', // 見出しを非表示
'child_of' => $page_ID->ID, // 固定ページのIDを指定
'echo' => '0' // PHP で使うために HTML テキストとして返す
));
if($children){ // 子ページがあれば一覧を表示
echo '<ul>';
echo $children;
echo '</ul>';
}
?>

対象の固定ページに親が存在する場合

固定ページに親が存在する場合は、スラッグの指定に親ページのスラッグを追加します。
例えば、親ページのスラッグが product でその子ページが item の場合に item の子ページ一覧を表示したい場合は、次のコードを追加します。

<?php // 指定したIDの子ページ一覧を表示
$page_ID = get_page_by_path('product/item'); // ID取得用の固定ページオブジェクトの取得
$children = wp_list_pages(array( // ページリストの取得
'title_li' => '', // 見出しの非表示
'child_of' => $page_ID->ID, // ページIDを指定
'echo' => '0' // PHP で使うために HTML テキストとして返す
));
if($children){ // 子ページがある場合に一覧を表示
echo '<ul>';
echo $children;
echo '</ul>';
}
?>

まとめ

WordPress で親ページに紐づく子ページ一覧の表示方法を紹介しました。