Как получить все дочерние страницы родительской страницы в Wordpress?
Пример:
About
--- Menu 1
--- Menu 2
--- Menu 3
--- Menu 4
если я нахожусь на странице... у меня есть подстраницы.
но, если войти в Меню 1, все страницы исчезнут
Что мне нужно, так это постоянно видеть родительские страницы
В настоящее время у меня есть этот код
<? if (is_page()) {
$g_page_id = $wp_query->get_queried_object_id();
wp_list_pages("depth=4&title_li=&child_of=".$g_page_id."&sort_column=menu_order");
}
?>
Спасибо!
Решено
Я использую это и отлично работаю!
<?php
if ( is_page() ) :
if( $post->post_parent ) :
$children = wp_list_pages( 'title_li=&child_of='.$post->post_parent.'&echo=0' );
else;
$children = wp_list_pages( 'title_li=&child_of='.$post->ID.'&echo=0' );
endif;
if ($children) : ?>
<div class="title">
<?php
$parent_title = get_the_title( $post->post_parent );
echo $parent_title;
?>
<span></span>
</div>
<ul>
<?php echo $children; ?>
</ul>
<?php
endif;
endif;
?>
Ответы
Ответ 1
Здесь вы идете. Немного поздно для автора, но люди придут сюда для ответа еще: -)
<?php
// determine parent of current page
if ($post->post_parent) {
$ancestors = get_post_ancestors($post->ID);
$parent = $ancestors[count($ancestors) - 1];
} else {
$parent = $post->ID;
}
$children = wp_list_pages("title_li=&child_of=" . $parent . "&echo=0");
if ($children) {
?>
<ul class="subnav">
<?php
// current child will have class 'current_page_item'
echo $children;
?>
</ul>
<?php
}
?>
Ответ 2
Самый простой способ справиться с этим - с помощью get_children()
. Это в значительной степени делает то, что вы ожидаете. Возвращает дочерние страницы родительской страницы.
get_children()
по сути является оберткой для класса WP_Query
.
Вы можете использовать это так...
$child_args = array(
'post_parent' => 1, // The parent id.
'post_type' => 'page',
'post_status' => 'publish'
);
$children = get_children( $child_args );
Если вы хотите вернуть дочерних элементов текущего сообщения, вы можете передать $post->ID
как 'post_parent'
.
Документация для get_children()
Документация для WP_Query