Я не пробовал это, но он должен работать: пока вы находитесь в Loop, для каждого из сообщений второго уровня (т. Е. Прямых детей, которые вы в настоящее время можете достичь), захватите текущую запись ID, как так
$level2_parent_ID = $post->ID;
Затем с помощью WP_Query, чтобы начать запрос в запросе, используя $ sub_parent_ID в качестве значения для post_parent. Это должно поднять детей детей.
В качестве примера, чтобы продолжить, где вы остановились ...
$the_query = new WP_Query($args);
// The Loop
if ($the_query->have_posts()) {
while ($the_query->have_posts()) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
$level2_parent_ID = $post->ID;
$level2_args = array(
'post_type' => 'page',
'posts_per_page' => 1,
'post_parent' => $level2_parent_ID,
'meta_query' => array(
array(
'key' => 'sticky',
'value' => '1',
'compare' => '=='
)
)
);
$level2_query = new WP_Query($level2_args);
// The Loop-within-a-loop
if ($level2_query->have_posts()) {
while ($level2_query->have_posts()) {
$level2_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
}
//plus whatever else you want to do in the outer loop
}
}
/* Restore original Post Data */
wp_reset_postdata();