Cum să afișezi lista paginilor copil ale unei pagini părinte în WordPress?

3 iul. 2014, 14:40:40
Vizualizări: 23.8K
Voturi: 3

Am următorul format de meniu.

Tratament
 -Frumusețe
  --Servicii
  --Produse
 -Chirurgie
 -Spălare

Am urmărit următorul link: Cum să afișezi o listă de pagini copil pentru o pagină părinte în WordPress

Dar nu doresc subpaginile paginii "Frumusețe". Vreau doar subpaginile paginii "Tratament".

1
Comentarii

Doar un sfat, te rog citește descrierile etichetelor înainte de a le folosi.

Pieter Goosen Pieter Goosen
3 iul. 2014 14:52:33
Toate răspunsurile la întrebare 2
9

Adaugă acest cod în fișierul tău functions.php. Mai jos este oferită o explicație a codului.

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' );
    //poți adăuga `&depth=1` la final, astfel încât să afișeze doar un nivel

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

    return $string;
}

add_shortcode('wpb_childpages', 'wpb_list_child_pages');

Explicație

Codul verifică dacă o pagină are o pagină părinte sau dacă pagina în sine este o pagină părinte. Dacă este o pagină părinte, atunci afișează paginile copil asociate cu aceasta. Dacă este o pagină copil, atunci afișează toate celelalte pagini copil ale paginii părinte. În sfârșit, dacă aceasta este doar o pagină fără pagini copil sau părinte, atunci codul nu va face nimic. Așadar, adaugă acest shortcode [wpb_childpages] pe pagina unde se vor afișa paginile copil.

Rezultatul meu de test care a funcționat pe localhost:

Test1

-t1

--tt1

-t2

iar rezultatul afișat când am folosit acel shortcode în pagina Test1 este:

t1

t2

3 iul. 2014 14:51:39
Comentarii

Dar preia și subpagini ale subpaginilor. Eu vreau doar subpaginile paginii părinte.

Arshad Hussain Arshad Hussain
3 iul. 2014 14:53:13

@ArshadHussain: ok.. atunci pentru asta adaugă &depth=1 cu &echo.. vezi linia actualizată în postarea mea.

Zammuuz Zammuuz
3 iul. 2014 14:58:33

încă nu funcționează.

Arshad Hussain Arshad Hussain
3 iul. 2014 15:09:08

ce se afișează? încă se afișează servicii, produse?? dar la mine a funcționat..

Zammuuz Zammuuz
3 iul. 2014 15:11:44

te rog să vezi răspunsul meu.. l-am actualizat cu rezultatul meu.

Zammuuz Zammuuz
3 iul. 2014 15:13:46

walah, funcționează..

Arshad Hussain Arshad Hussain
3 iul. 2014 15:37:50

@ArshadHussain: dacă răspunsul meu te-a ajutat, te rog să îl marchezi ca răspuns.. oricum, mă bucur că ți-ai rezolvat problema.. :)

Zammuuz Zammuuz
4 iul. 2014 06:12:33

Îmi pare rău, dar rangul meu este prea mic pentru a vota. Am să țin cont pe viitor

Arshad Hussain Arshad Hussain
4 iul. 2014 06:43:09

@ArshadHussain: nu mă refeream să votezi în sus.. doar să marchezi acest răspuns ca soluție pentru postarea ta. un bifă verde. astfel va ajuta și pe alții :)

Zammuuz Zammuuz
4 iul. 2014 06:44:40
Arată celelalte 4 comentarii
0

Dacă dorești doar subpaginile paginii curente, folosește acest cod:

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