WordPress 固定ページの子ページ一覧の表示方法
最終更新日 - 公開日 2018.01.10
by
WordPress で固定ページの親ページに紐づく、子ページ一覧の表示方法を紹介します。
例えば、グローバルナビ内の親ページに紐づく、子ページ一覧を表示したい時に便利な方法です。
親ページに紐づく子ページ一覧の表示方法
親ページに紐づく子ページ一覧を表示する場合は、テンプレートタグの 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 で親ページに紐づく子ページ一覧の表示方法を紹介しました。