Проверьте, есть ли страница подстраниц

Я пытаюсь создать меню с wp_list_pages() которое должно работать следующим образом:

 Main Page -Subpage1 -Subpage2 

Я проверяю, имеет ли страница page__subpage, и я могу видеть 2 подстраницы, когда я нахожусь в родительском, но когда я посещаю одну из подстраниц, я ничего не вижу. Итак, что я могу сделать, чтобы проверить, имеет ли страница подстраницы, чтобы получить тот же список страниц в подстраницах?

Как я его использую: в функциях я проверяю, есть ли страница has_subpage,

 function has_subpage (){ global $post; $pages = get_pages("sort_column=menu_order&depth=1&child_of={$post->ID}"); if ($pages) return TRUE; } 

и в моем шаблоне я вызываю меню (список подстраниц),

 <?php if (is_page() && has_subpage()) { ?> <?php if($post->post_parent) { $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0$sort_column=menu_order"); $title_heading = get_the_title($post->post_parent); } else { $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0"); $title_heading = get_the_title($post->ID); } if ($children) { ?> <?php echo $children; ?> <?php } ?> <?php } ?> 

проблема внутри функции has_subpage (), потому что, если я не использую ее, я получаю правильные страницы, может быть, я что-то пропустил?

большое спасибо!

Solutions Collecting From Web of "Проверьте, есть ли страница подстраниц"

Вы должны передать идентификатор родительской страницы в функцию wp_list_pages а не глобальный $post->ID в своих подстраницах.

 function wpse33151_getSubpages() { global $post; $parents = get_post_ancestors($post->post_id); krsort($parents); $parents = array_merge(array(), $parents); if (is_home() || is_single()) { $id = get_option('page_for_posts'); $parent = get_post_ancestors($id); $id = $parent[0]; } elseif($parents) { $id = $parents[0]; } else { $id = $post->ID; } $children = wp_list_pages('title_li=&child_of=' . $id . '&echo=0'); $out = null; if ($children) { $out = '<div id="subpages" class="widget-container">'; $out .= '<h3 class="widget-title"><a href="' . get_permalink($id) . '">' . get_the_title($id) . '</a></h3>'; $out .= '<ul>'; $out .= $children; $out .= '</ul>'; $out .= '</div>'; } return $out; }