Дочерние страницы через шорткод
-
Добрый вечер.
Есть функция, которую я подключаю в page.phpfunction asd() { $childpages = new WP_Query( array( 'post_type' => 'page', 'post_parent' => $this_page, 'posts_per_page' => 100, 'orderby' => 'menu_order', 'post__in' => array( 11 ) )); while ( $childpages->have_posts() ) : $childpages->the_post(); ?> <section> <a href="<?php echo get_page_link( $page->ID );?>"><?php the_title(); ?></a> <div class="content"> <?php $this_subpage=$post->ID; ?> <?php //Loop through the sub-pages of the child pages next $subpages = new WP_Query( array( 'post_type' => 'page', 'post_parent' => $this_subpage, 'posts_per_page' => 0, 'orderby' => 'menu_order', 'post_parent__in' => array(11) )); while ( $subpages->have_posts() ) : $subpages->the_post(); ?> <section class="subpages"> <a href="<?php echo get_page_link( $page->ID );?>"><?php the_title(); ?></a> <div> </div> </section> <?php endwhile; wp_reset_query(); ?> </div><!--.content --> </section> <?php endwhile; wp_reset_query(); } asd();?>
Таким образом она выводит родительскую страницу и ее дочерние — выводит нормально.
Е пытаюсь добавить ее через шорткод (не особо в этом) делаю так:
function wp_p() { $childpages = new WP_Query( array( 'post_type' => 'page', 'post_parent' => $this_page, 'posts_per_page' => 100, 'orderby' => 'menu_order', 'post__in' => array( 11 ) )); while ( $childpages->have_posts() ) : $childpages->the_post(); $string1 = '<ul class="side-menu"><li><a href="'.get_page_link( $post->ID ).'">'.get_the_title().'</a></li>'; $this_subpage=$post->ID; //Loop through the sub-pages of the child pages next $subpages = new WP_Query( array( 'post_type' => 'page', 'post_parent' => $this_subpage, 'posts_per_page' => -1, 'order' => 'ASC', 'orderby' => 'date', 'post_parent__in' => array(11) )); while ( $subpages->have_posts() ) : $subpages->the_post(); $string2 = '<li><a href="'.get_page_link( $post->ID ).'">'.get_the_title().'</a></li></ul>'; return $string1.$string2; endwhile; wp_reset_query(); endwhile; wp_reset_query(); } add_shortcode('lch', 'wp_p');
Таким образом она выводит только родительскую страницу и одну дочернюю, на всех дочерних только одну последнюю добавленную (ну в таком варианте ‘order’ => ‘ASC’,
‘orderby’ => ‘date’,) первую добавленнуюПодскажите пожалуйста, что не так?
- Тема «Дочерние страницы через шорткод» закрыта для новых ответов.