Obtener solo páginas secundarias directas en WordPress con get_pages

20

Estoy tratando de obtener todos los hijos directos de una página. Pero también tengo hijos y nietos. ¿Algunas ideas?

Fuente 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 );
}

Mi $argsdebe ser correcto de acuerdo con la documentación , pero es totalmente ignorante parenty hierarchical.

La estructura de mi página es la siguiente:

Padre -
Niño 1 -
Niño 2 -
Niño 1 a niño 2 -
Niño 2 a niño 2 -
Niño 3

Y solo quiero llegar child 1, child 2y child 3.

jamietelin
fuente
Intenta considerar la depthopción también. Otra solución que encontré y parece estar funcionando es que $mypages = get_pages('child_of='.$post->ID.'&sort_column=post_date&sort_order=desc&parent='.$post->ID); aquí puede cambiar sort_columny sort_ordersegún sea necesario.
Rohit Pande
@RohitPande depthno me ayudó en absoluto, configurando child_ofy parental igual que fue.
Volker E.

Respuestas:

12

Por favor verifique el parámetro 'padre'. Parece que hay un espacio después del nombre.

realloc
fuente
Oh Dios. Tan estupido. Pero gracias, eso me ahorró algo de tiempo. :)
jamietelin
3

Con el parámetro 'profundidad' de la función "wp_list_pages" o la función "get_pages", podemos definir cuántos niveles queremos recuperar. Así que aquí, mostraré todo el primer nivel secundario de la página actual.

            <?php global $post;
                    wp_list_pages( array(
                    'child_of' => $post->ID, // Only pages that are children of the current page
                    'depth' => 1 ,   // Only show one level of hierarchy
                    'sort_order' => 'asc'
                ));
            ?>
Romain
fuente
La función get_pages no parece tener un argumento de profundidad, o al menos no está documentado: developer.wordpress.org/reference/functions/get_pages .
kloddant