Obținerea doar a paginilor copil directe în WordPress cu get_pages

27 nov. 2012, 14:12:40
Vizualizări: 31.2K
Voturi: 26

Încerc să extrag toate paginile copil directe ale unei pagini. Dar primesc toate paginile copil și nepot. Aveți vreo idee?

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

Parametrii mei din $args ar trebui să fie corecți conform documentației, dar sunt complet ignorate opțiunile parent și hierarchical.

Structura paginii mele este următoarea:

Părinte
-Copil 1
-Copil 2
--Copil 1 al copilului 2
--Copil 2 al copilului 2
-Copil 3

Și vreau să obțin doar copil 1, copil 2 și copil 3.

2
Comentarii

Încearcă să iei în considerare și opțiunea depth. O altă soluție pe care am găsit-o și pare să funcționeze este $mypages = get_pages('child_of='.$post->ID.'&sort_column=post_date&sort_order=desc&parent='.$post->ID);

Aici poți modifica sort_column și sort_order după nevoie.

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

@RohitPande depth nu m-a ajutat deloc, setând child_of și parent la aceeași valoare ca înainte.

Volker E. Volker E.
9 mai 2015 21:16:16
Toate răspunsurile la întrebare 2
1
13

Te rugăm să verifici parametrul 'parent'. Se pare că există un spațiu după nume.

27 nov. 2012 15:05:28
Comentarii

Oh, Doamne. Ce prostie. Dar mulțumesc, mi-ai economisit ceva timp. :)

lejahmie lejahmie
27 nov. 2012 16:45:25
1

Cu parametrul 'depth' al funcției "wp_list_pages" sau "get_pages", putem defini câte niveluri dorim să preluăm. Aici voi afișa toate paginile copil de prim nivel ale paginii curente.

            <?php global $post;
                    wp_list_pages( array(
                    'child_of' => $post->ID, // Doar paginile care sunt copii ai paginii curente
                    'depth' => 1 ,   // Afișează doar un nivel de ierarhie
                    'sort_order' => 'asc'
                ));
            ?>
22 iul. 2013 14:01:44
Comentarii

Funcția get_pages nu pare să aibă un argument depth, sau cel puțin nu este documentat: https://developer.wordpress.org/reference/functions/get_pages/.

tklodd tklodd
14 oct. 2019 18:26:11