WordPress

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 で固定ページの子ページの一覧を表示する方法を紹介しました。

合わせて読みたい関連記事