Получение только прямых дочерних страниц в WordPress с помощью get_pages
Я пытаюсь получить все прямые дочерние страницы родительской страницы. Но я получаю все дочерние и внучатые страницы. Есть идеи?
PHP код:
$args = array(
'child_of' => $post->ID,
'parent ' => $post->ID,
'hierarchical' => 0,
'sort_column' => 'menu_order',
'sort_order' => 'asc'
);
$mypages = get_pages( $args );
foreach( $mypages as $post )
{
// Получаем часть шаблона страницы
$post_tempalte = the_page_template_part();
// Подключаем шаблон контента
get_template_part( 'content' , $post_tempalte );
}
Мои $args
должны быть правильными согласно документации, но параметры parent
и hierarchical
полностью игнорируются.
Моя структура страниц выглядит следующим образом:
Родитель
-Дочерняя 1
-Дочерняя 2
--Дочерняя 1 к дочерней 2
--Дочерняя 2 к дочерней 2
-Дочерняя 3
И я хочу получить только дочерняя 1
, дочерняя 2
и дочерняя 3
.

С помощью параметра 'depth' функции "wp_list_pages" или "get_pages" мы можем определить, сколько уровней иерархии хотим получить. В данном примере я покажу всех дочерних элементов первого уровня для текущей страницы.
<?php global $post;
wp_list_pages( array(
'child_of' => $post->ID, // Только страницы, которые являются дочерними для текущей
'depth' => 1 , // Показать только один уровень иерархии
'sort_order' => 'asc'
));
?>

Функция get_pages, по-видимому, не имеет аргумента depth, или, по крайней мере, он не документирован: https://developer.wordpress.org/reference/functions/get_pages/.
