情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
ページリストで表示しているページが親ページなら、その子ページリスト、表示しているページが子ページなら、その親に属する子ページリストのみ開く。
<?php global $post; if ( is_page() AND $post->post_parent ) { $pID = $post->post_parent; } else { $pID = $post->ID; } ?> <style type="text/css"> ul.children {display:none;} li.page-item-<?php echo $pID; ?> ul.children {display:block;} </style> <?php wp_list_pages('~'); ?>
親ページヘのリンクと、その子ページリストのみを表示
<?php global $post; if ( is_page() AND $post->post_parent ) { $pID = $post->post_parent; } else { $pID = $post->ID; } $page = get_page($pID); ?> <li><a href="<?php echo $page->guid; ?>" title="<?php echo $page->post_title; ?>"><?php echo $page->post_title; ?></a> <ul> <?php wp_list_pages('title_li=&amp;amp;sort_column=menu_order&amp;amp;child_of=' .$pID); ?> </ul> </li>
孫ページまである時
<?php global $post; if (!$post->post_parent ) { $pID = $post->ID; } else { $ancestor = array_pop( get_post_ancestors( $post->ID ) ); $pID = $ancestor; } $page = get_page($pID); ?>
ページリストをすべて表示・表示中のページに関連する子ページリストのみを表示
<?php $IDOutsideLoop = $post->ID; global $post; if (!$post->post_parent ) { $pID = $post->ID; } else { $ancestor = array_pop( get_post_ancestors( $post->ID ) ); $pID = $ancestor; } $page = get_page($pID); ?> <ul><?php $mypages = get_pages( array( 'parent' => '0', 'sort_column' => 'menu_order', 'sort_order' => 'desc' ) ); foreach( $mypages as $page ) { ?> <li<?php if ($IDOutsideLoop == $page->ID) { ?> class="current"<?php } ?>><a href="<?php echo get_page_link( $page->ID ); ?>"><?php echo $page->post_title; ?></a> <?php if ($pID == $page->ID) { ?><ul> <?php wp_list_pages('title_li=&sort_column=menu_order&child_of=' .$pID); ?> </ul> <?php } ?> </li> <?php } ?> </ul>
コメントは受け付けていません。