Wie ordne ich Kinderseiten in der Seitenleiste richtig auf?

Mein Seitenmenü ist maximal 3 Ebenen tief und es fällt mir schwer herauszufinden, wie man die untergeordneten Seiten in der Seitenleiste richtig auflisten kann.

Wenn eine Seite ein Elternteil ist, möchte ich ihre direkten untergeordneten Seiten auflisten, und der Titel sollte dieser Elternteil sein.

Wenn eine Seite ein Kind ist und Kinder von sich selbst hat, möchte ich nur ihre Kinder auflisten und der Titel sollte diese Seite sein

Wenn eine Seite ein Enkelkind ist, möchte ich ihre Geschwister auflisten und der Titel sollte dieses Enkelkind sein.

Für jetzt benutze ich (aus dem Codex):

post_parent) { $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0&depth=1&sortcolumn=menuorder"); } else { $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0&depth=1&sortcolumn=menuorder"); } ?>  

post_parent);?>

Und das ist fast richtig. Fast, weil es mein 2. Kriterium nicht erfüllt.

Der Codex hat eine Menge Möglichkeiten, aber ich kann nicht herausfinden, was für was ich erreichen möchte. Die Verwendung von Widgets und / oder eines Plugins ist keine Option.

Jede Hilfe wird sehr geschätzt.

Solutions Collecting From Web of "Wie ordne ich Kinderseiten in der Seitenleiste richtig auf?"

Hier ist der Code, der alle Ihre 3 Anforderungen erfüllt.

 < ?php /* * get_page_depth * Gets the page depth, calls get_post on every iteration * https://gist.github.com/1039575 */ if ( !function_exists( 'get_page_depth' ) ) { function get_page_depth( $id=0, $depth=0 ) { global $post; if ( $id == 0 ) $id = $post->ID; $page = get_post( $id ); if ( !$page->post_parent ) { // this page does not have any parent return $depth; } return get_page_depth( $page->post_parent, $depth+1 ); } } $target_page = get_page_depth( $post->ID ) > 1 ? $post->post_parent : $post->ID; $children = wp_list_pages("title_li=&child_of={$target_page}&depth=1&echo=0&sort_column=menu_order"); ?> 

< ?php _e('More ','sunchine'); ?>< ?php echo get_the_title( $target_page ); ?>

    < ?php echo $children; ?>