WordPress: automatische Sidebar die alle Kinderseiten ausgibt.

Julian Lang
Julian Lang

13. Jul, 2022 | 1 Min. Lesezeit

In WordPress können Seiten Kinder <-> Eltern Beziehungen haben. Um alle Kinderseiten einer Hauptseite auszugeben kannst du folgendes Snippet verwenden.

Erstelle zum Beispiel ein Template-Part: sidebar-siblings.php und füge diesen in deinem page.php Template ein.

get_template_part( 'template-parts/modules/sidebar', 'siblings' );

sidebar-siblings.php

global $post;

if ( is_page() && $post->post_parent ) {

    $current_page_id = $post->ID;
    $parent_page_id = $post->post_parent;
    $children_ids = get_children([
        'post_parent'   => $parent_page_id,
        'fields'        => 'ids',
        'orderby'       => 'menu_order',
        'order'         =>  'ASC'
    ]);

    if ( !empty( $children_ids ) ) {

        $html = '<ul class="siblings-menu">';

        foreach ( $children_ids as $child_id ) {

            $active = '';
            if ( $current_page_id === $child_id ) {
                $active = 'active';
            }

            $html .= '<li class="'.$active.'">';
            $html .= '<a href="'.get_permalink( $child_id ).'">'.get_the_title( $child_id ).'</a>';
            $html .= '</li>';

        }

        $html .= '</ul>';

        echo $html;

    }

}

War der Beitrag hilfreich?

geschrieben von

Autor Avatar
Julian Lang

ist PHP / WordPress Entwickler. Arbeitet außerdem als Allrounder bei docrelations.de und entwickelt zwei coole Projekte: jadento.de | lifeisabinge.com

Schreibe einen Kommentar

© 2015 - 2022 | Julian Lang Webentwickler | WordPress Entwickler | Webdesigner