Ottenere solo le pagine figlie dirette in WordPress con get_pages

27 nov 2012, 14:12:40
Visualizzazioni: 31.2K
Voti: 26

Sto cercando di recuperare tutte le pagine figlie dirette di una pagina. Ma ottengo anche tutte le pagine figlie e le pagine nipoti. Qualche idea?

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

I miei $args dovrebbero essere corretti secondo la documentazione, ma sta completamente ignorando parent e hierarchical.

La mia struttura delle pagine è la seguente:

Genitore
-Figlio 1
-Figlio 2
--Figlio 1 del figlio 2
--Figlio 2 del figlio 2
-Figlio 3

E voglio ottenere solo figlio 1, figlio 2 e figlio 3.

2
Commenti

Prova a considerare anche l'opzione depth. Un'altra soluzione che ho trovato e che sembra funzionare è $mypages = get_pages('child_of='.$post->ID.'&sort_column=post_date&sort_order=desc&parent='.$post->ID);

Qui puoi modificare sort_column & sort_order in base alle esigenze.

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

@RohitPande depth non mi ha aiutato per niente, impostando child_of e parent allo stesso valore che era.

Volker E. Volker E.
9 mag 2015 21:16:16
Tutte le risposte alla domanda 2
1
13

Per favore controlla il parametro 'parent'. Sembra ci sia uno spazio dopo il nome.

27 nov 2012 15:05:28
Commenti

Oddio. Che stupidata. Ma grazie, mi hai risparmiato un sacco di tempo. :)

lejahmie lejahmie
27 nov 2012 16:45:25
1

Con il parametro 'depth' della funzione "wp_list_pages" o "get_pages", possiamo definire quanti livelli vogliamo recuperare. Quindi qui, visualizzerò tutti i primi livelli figlio della pagina corrente.

            <?php global $post;
                    wp_list_pages( array(
                    'child_of' => $post->ID, // Solo le pagine che sono figlie della pagina corrente
                    'depth' => 1 ,   // Mostra solo un livello della gerarchia
                    'sort_order' => 'asc'
                ));
            ?>
22 lug 2013 14:01:44
Commenti

La funzione get_pages sembra non avere un argomento depth, o almeno non è documentato: https://developer.wordpress.org/reference/functions/get_pages/.

tklodd tklodd
14 ott 2019 18:26:11