Aquí hay un ejemplo de cómo podría hacerlo. Este código funcionará si tiene todas las páginas que desea que se muestren en uno de los padres. En este caso, estaba colocando páginas debajo de la página de inicio (p.post_parent = 2).
if ($post->post_type == 'page') {
$pages = $wpdb->get_results("SELECT p.ID, p.post_name, p.post_title, p.post_parent, pm.meta_value FROM $wpdb->posts AS p LEFT JOIN $wpdb->postmeta AS pm ON pm.post_id=p.ID AND pm.meta_key='wp_menu_nav' LEFT JOIN $wpdb->posts AS P ON P.ID=p.post_parent WHERE p.post_parent = 2 AND p.post_type='page' AND p.post_status='publish' ORDER BY p.menu_order ASC");
if ($wpdb->num_rows > 0) {
foreach($pages as $page) {
//echo $page->ID . "<br>";
$args = array('numberposts' => 1, 'post_type'=> 'page', 'include' => $page->ID, 'post_status' => 'published');
$myposts = get_posts($args);
foreach($myposts as $mypost) {
setup_postdata($mypost);
echo the_content();
}
}
}
}
¿Si quería aplicar la plantilla que especifiqué en Wordpress en cada una de estas páginas? – Prusprus
Este enfoque ahora está en desuso –
Estoy buscando una respuesta a esta pregunta también, pero 'get_page' ahora está en desuso. ¿Alguien puede recomendar una alternativa, por favor? – mattnewbie