¿Cómo mostrar la lista de páginas hijas de una página padre en WordPress?

3 jul 2014, 14:40:40
Vistas: 23.8K
Votos: 3

Tengo el siguiente formato de menú.

Treatment
 -Beauty
  --Services
  --Products
 -Surgery
 -washing

He seguido el siguiente enlace: Cómo mostrar una lista de páginas hijas para una página padre en WordPress

Pero no quiero las subpáginas de la página "Beauty". Solo quiero las subpáginas de "Treatment".

1
Comentarios

Solo un consejo, por favor lee las descripciones de las etiquetas antes de usarlas.

Pieter Goosen Pieter Goosen
3 jul 2014 14:52:33
Todas las respuestas a la pregunta 2
9

Añade este código a tu functions.php. A continuación se proporciona una explicación del código.

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' );
    //puedes añadir `&depth=1` al final para que solo muestre un nivel

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

    return $string;
}

add_shortcode('wpb_childpages', 'wpb_list_child_pages');

Explicación

El código verifica si una página tiene una página padre o si la página misma es una página padre. Si es una página padre, entonces muestra las páginas hijas asociadas a ella. Si es una página hija, entonces muestra todas las demás páginas hijas de su página padre. Por último, si es solo una página sin páginas hijas o padre, entonces el código no hará nada. Simplemente añade este shortcode [wpb_childpages] a la página donde se mostrarán sus páginas hijas.

Mi salida de prueba que funcionó en mi localhost:

Test1

-t1

--tt1

-t2

y la salida que se muestra cuando escribí ese shortcode en la página Test1 es:

t1

t2

3 jul 2014 14:51:39
Comentarios

Pero también está obteniendo subpáginas de subpáginas. Solo quiero subpáginas de la página principal.

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

@ArshadHussain: ok.. entonces para eso añade &depth=1 con &echo.. mira mi línea actualizada en mi publicación.

Zammuuz Zammuuz
3 jul 2014 14:58:33

todavía no funciona.

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

¿qué está mostrando? ¿todavía se muestran servicios, productos?? pero funcionó para mí..

Zammuuz Zammuuz
3 jul 2014 15:11:44

por favor mira mi respuesta.. la actualicé con mi resultado.

Zammuuz Zammuuz
3 jul 2014 15:13:46

walah, está funcionando..

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

@ArshadHussain: si mi respuesta te ayudó, por favor márcala como la respuesta.. de cualquier forma, me alegra saber que tu problema se resolvió.. :)

Zammuuz Zammuuz
4 jul 2014 06:12:33

Lo siento, pero mi rango es demasiado bajo para votar. Lo tendré en cuenta en el futuro

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

@ArshadHussain: no me refería a votar positivo.. solo te decía que marcaras esto como la respuesta para tu publicación. Una marca de verificación verde. Así esto ayudará a otros también :)

Zammuuz Zammuuz
4 jul 2014 06:44:40
Mostrar los 4 comentarios restantes
0

Si solo deseas las subpáginas de la página actual, utiliza esto:

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 abr 2017 12:52:58