Получить идентификатор ребенка из дочернего пула, зная родительский идентификатор

У меня есть иерархия, с которой мне нужно получить данные. Это ребенок (по имени slug), который мне нужно получить, уже имея знания о родителях.

Highest Known Parent Page (slug : 'parent') |_ Child 1 (slug : 'child-1') |_ Page 1 (slug : 'page-1') |_ Page 2 (slug : 'page-2') |_ Child 2 (slug : 'child-2') |_ Page 1 (slug : 'page-1') |_ Page 2 (slug : 'page-2') |_ Child 3 (slug : 'child-3') |_ Page 1 (slug : 'page-1') |_ Page 2 (slug : 'page-2') 

В идеале я пытаюсь получить результат, который возвращает «page-2» последовательно, и я уже работаю в цикле, где я знаю «child-1», «child-2», «child-3» и т. Д. I я просто не уверен, как запросить третий уровень. Есть идеи?

Я, вероятно, слишком задумываюсь об этом, так как есть, вероятно, простой способ получить идентификатор страницы из пули, когда вы уже знаете родителя. Конечно, мне понадобится сценарий непредвиденных ситуаций, если по какой-то причине «page-2» не существует, но мне сначала нужно получить нужные данные.

ОБНОВИТЬ:

Вот код, с которым я сейчас работаю. Я знаю модели. Я знаю детей моделей. Я пытаюсь получить каждого ребенка из всех детей модели. Например, страница «спецификации». Поэтому я надеюсь, что мне понравятся 5-6 разных «спецификаций», поэтому я могу легко связать их (динамически).

 <?php // get models id $models = get_page_by_path( 'models' ); // get children of models page $args = array( 'post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $models->ID, 'order' => 'ASC', 'orderby' => 'menu_order' ); $children_posts = new WP_Query( $args ); ?> 

Solutions Collecting From Web of "Получить идентификатор ребенка из дочернего пула, зная родительский идентификатор"

Я надеюсь, что это поможет вам, вам нужно получить идентификатор страницы вашего родителя и запустить цикл, как это

 <?php $args = array( 'posts_per_page' => -1, 'post_type' => 'page', 'post_parent' => 52, 'orderby' => 'modified'); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); // Get next child $args2 = array( 'posts_per_page' => -1, 'post_type' => 'page', 'post_parent' => get_the_ID(), 'orderby' => 'modified'); $loop2 = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); // Your code ?> 

Вы должны использовать параметр pagename для WP_Query вместе с post_parent . Ограничьте свой запрос до одного сообщения, используя posts_per_page .

 $parent_id = get_the_ID(); $args = array( 'post_type' => 'page' 'pagename' => 'page-2', 'post_parent' => $parent_id, 'posts_per_page' => 1 ); $posts = get_posts( $args ); $child = isset( $posts[0] ) ? $posts[0] : false; if( $child ){ //Do Something } 

Это, теоретически, должно сделать ваш желаемый пост путём с использованием родительского идентификатора.

Вы уже посмотрели на get_page_children ? вам нужно передать идентификатор дочерней страницы и $ children_posts, и он вернет все дочерние страницы …

вам нужно: child-1-> ID и массив с child-1, child-2 и т. д.