Come visualizzare l'elenco delle pagine figlie di una pagina padre in WordPress?

3 lug 2014, 14:40:40
Visualizzazioni: 23.8K
Voti: 3

Ho il seguente formato di menu.

Trattamenti
 -Bellezza
  --Servizi
  --Prodotti
 -Chirurgia
 -Lavaggio

Ho seguito questo link: Come Visualizzare un Elenco di Pagine Figlie per una Pagina Padre in WordPress

Ma non voglio le sottopagine di "Bellezza". Voglio solo le sottopagine di "Trattamenti".

1
Commenti

Solo un consiglio, per favore leggi le descrizioni dei tag prima di usarli.

Pieter Goosen Pieter Goosen
3 lug 2014 14:52:33
Tutte le risposte alla domanda 2
9

Aggiungi questo codice al tuo functions.php. Di seguito è riportata una spiegazione del codice.

function wpb_list_child_pages() { 

    global $post; 

    $id = ( is_page() && $post->post_parent ) ? $post->post_parent : $post->ID;
    $childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $id . '&echo=0' );
    //puoi aggiungere `&depth=1` alla fine, così mostra solo un livello

    if ( $childpages ) {    
        $string = '<ul>' . $childpages . '</ul>';
    }

    return $string;
}

add_shortcode('wpb_childpages', 'wpb_list_child_pages');

Spiegazione

Il codice verifica se una pagina ha una genitore o se la pagina stessa è un genitore. Se è una pagina genitore, allora mostra le pagine figlie associate ad essa. Se è una pagina figlia, allora mostra tutte le altre pagine figlie della sua pagina genitore. Infine, se questa è solo una pagina senza figli né genitore, allora il codice non farà semplicemente nulla. Quindi basta aggiungere questo shortcode [wpb_childpages] alla pagina dove verranno visualizzate le pagine figlie.

Il mio test che ha funzionato sul mio localhost:

Test1

-t1

--tt1

-t2

e l'output che viene visualizzato quando ho inserito quello shortcode nella pagina Test1 è:

t1

t2

3 lug 2014 14:51:39
Commenti

Ma sta anche recuperando le sottopagine delle sottopagine. Voglio solo le sottopagine della pagina genitore.

Arshad Hussain Arshad Hussain
3 lug 2014 14:53:13

@ArshadHussain: ok.. allora per quello aggiungi &depth=1 con &echo.. vedi la mia riga aggiornata nel mio post.

Zammuuz Zammuuz
3 lug 2014 14:58:33

non funziona ancora.

Arshad Hussain Arshad Hussain
3 lug 2014 15:09:08

cosa mostra? stanno ancora mostrando servizi e prodotti?? ma per me ha funzionato..

Zammuuz Zammuuz
3 lug 2014 15:11:44

per favore guarda la mia risposta.. l'ho aggiornata con il mio output.

Zammuuz Zammuuz
3 lug 2014 15:13:46

walah, sta funzionando..

Arshad Hussain Arshad Hussain
3 lug 2014 15:37:50

@ArshadHussain: se la mia risposta ti è stata utile, per favore segnalala come soluzione.. comunque sono felice di sentire che il tuo problema è stato risolto.. :)

Zammuuz Zammuuz
4 lug 2014 06:12:33

Scusa, ma il mio rank è troppo basso per votare. Ci penserò in futuro

Arshad Hussain Arshad Hussain
4 lug 2014 06:43:09

@ArshadHussain: non intendevo votare.. ti stavo solo chiedendo di segnare questa come risposta al tuo post. Un segno di spunta verde. Così che possa aiutare anche altri :)

Zammuuz Zammuuz
4 lug 2014 06:44:40
Mostra i restanti 4 commenti
0

Se vuoi solo le sottopagine della pagina corrente, usa questo codice:

function wpb_list_child_pages() {

    global $post; 

if ( is_page() && $post->ID )    
    $childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->ID . '&echo=0&depth=2' );

    if ( $childpages ) {    
         $string = '<ul>' . $childpages . '</ul>';
    }

    return $string;
}

add_shortcode('wpb_childpages', 'wpb_list_child_pages');
13 apr 2017 12:52:58