Ich habe die folgende function, die alle Child-Seiten einer Seite auflistet.
function show_subpages() { global $post; $subpages = wp_list_pages( array( 'echo' =>0, 'title_li' =>'', 'depth' =>2, 'link_before' => '— ', 'child_of' => ( $post->post_parent == 0 ? $post->ID : $post->post_parent) )); if ( !empty($subpages) ) { echo ''; echo $subpages; echo '
'; } }
Wenn ich also auf der parent-page
bin, sehe ich eine Liste mit allen Kindseiten. Wenn ich auf einer child-page
bin, sehe ich die gleiche Liste mit allen Child-Seiten, die der Eltern-Seite entsprechen.
— My Parent Page — My Child Page Nr. 1 — My Child Page Nr. 2 — My Child Page Nr. 3
Das ist fast, was ich will! Die einzige kleine Sache, die ich hinzufügen muss, ist, die “gegenwärtige” Seite zu entfernen, auf der ich bin, von der Liste der child-pages.
Stellen Sie sich vor, ich bin auf My Child Page Nr. 2
My Child Page Nr. 2
Ich möchte nur My Child Page Nr. 1
My Child Page Nr. 1
und My Child Page Nr. 3
My Child Page Nr. 3
aber nicht “Nr. 2”, da ich gerade dabei bin.
Irgendwelche Ideen, wie man das hinzufügt?
Vielen Dank im Voraus.
function show_subpages() { global $post; $subpages = wp_list_pages( array( 'echo' =>0, 'title_li' =>'', 'depth' =>2, 'link_before' => '— ', 'child_of' => ( $post->post_parent == 0 ? $post->ID : $post->post_parent), 'exclude' => ( $post->post_parent == 0 ? '' : $post->ID) )); if ( !empty($subpages) ) { echo ''; echo $subpages; echo '
'; } }
wp_list_pages
unterstützt einen exclude
Parameter. Im obigen Beispiel habe ich einfach 'exclude' => ( $post->post_parent == 0 ? '' : $post->ID)
zum Parameter-Array hinzugefügt.
Es funktioniert analog zur Art, wie Sie bereits Werte für child_of
:
Wenn der Beitrag kein Elternteil hat, geben wir einen leeren String aus. Wenn es einen hat, geben wir ihm die aktuelle Post-ID.