Obtener solo páginas hijas directas en WordPress con get_pages

27 nov 2012, 14:12:40
Vistas: 31.2K
Votos: 26

Estoy tratando de obtener todos los hijos directos de una página. Pero estoy obteniendo todos los hijos y nietos también. ¿Alguna idea?

Código 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 );
}

Mis $args deberían ser correctos según la documentación, pero está ignorando completamente parent y hierarchical.

Mi estructura de páginas es la siguiente:

Padre
-Hijo 1
-Hijo 2
--Hijo 1 de hijo 2
--Hijo 2 de hijo 2
-Hijo 3

Y solo quiero obtener hijo 1, hijo 2 y hijo 3.

2
Comentarios

Intenta considerar también la opción depth. Otra solución que encontré y parece funcionar es $mypages = get_pages('child_of='.$post->ID.'&sort_column=post_date&sort_order=desc&parent='.$post->ID);

Aquí puedes cambiar sort_column y sort_order según sea necesario.

Rohit Pande Rohit Pande
27 nov 2012 15:03:54

@RohitPande depth no me ayudó en absoluto, configurando child_of y parent al mismo valor que tenía.

Volker E. Volker E.
9 may 2015 21:16:16
Todas las respuestas a la pregunta 2
1
13

Por favor, verifica el parámetro 'parent'. Parece que hay un espacio después del nombre.

27 nov 2012 15:05:28
Comentarios

Oh Dios. Qué estupidez. Pero gracias, me has ahorrado algo de tiempo. :)

lejahmie lejahmie
27 nov 2012 16:45:25
1

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

            <?php global $post;
                    wp_list_pages( array(
                    'child_of' => $post->ID, // Solo páginas que son hijas de la página actual
                    'depth' => 1 ,   // Mostrar solo un nivel de jerarquía
                    'sort_order' => 'asc'
                ));
            ?>
22 jul 2013 14:01:44
Comentarios

La función get_pages no parece tener un argumento de profundidad, o al menos no está documentado: https://developer.wordpress.org/reference/functions/get_pages/.

tklodd tklodd
14 oct 2019 18:26:11