List parent item with all child item on child pages

function wpb_list_child_pages() {
    global $post;
    $parent = "";
    if ( is_page() && $post->post_parent ) {
        $parent = wp_list_pages( 'title_li=&include=" . $post->post_parent . "&echo=0' );
        $childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=" . $post->post_parent . "&echo=0' );
    } else {
        $childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=" . $post->ID . "&echo=0' );
        //$parent = $post->post_title;
    }

    if ( $childpages ) {
        $string = '<ul>'. $parent . $childpages . '</ul>';
    }

    return $string;
}
add_shortcode( 'wpb_childpages', 'wpb_list_child_pages' );

OUTPUT ON TOP LEVEL PAGE

<ul>
    <li class="page_item page-item-283">
       <a href="http://192.168.8.200/www/parent-page/child-page-1/">Child Page 1</a>
    </li>


    <li class="page_item page-item-285">
       <a href="http://192.168.8.200/www/parent-page/child-page-2/">Child Page 2</a>
    </li>

    <li class="page_item page-item-286">
       <a href="http://192.168.8.200/www/parent-page/child-page-3/">Child Page 3</a>
    </li>

</ul>

OUTPUT ON A CHILD PAGE

<ul>

    <li class="page_item page-item-282 current_page_ancestor current_page_parent">
       <a href="http://192.168.8.200/www/parent-page/">Parent page</a>
    </li>

    <li class="page_item page-item-283 current_page_item">
       <a href="http://192.168.8.200/www/parent-page/child-page-1/" aria-current="page">Child Page 1</a>
    </li>

    <li class="page_item page-item-285">
       <a href="http://192.168.8.200/www/parent-page/child-page-2/">Child Page 2</a>
   </li>

   <li class="page_item page-item-286">
       <a href="http://192.168.8.200/www/parent-page/child-page-3/">Child Page 3</a>
   </li>

</ul>

Leave a Comment