Os dejo un pequeño código de una función para listar páginas hijas dentro de una página cualquiera. De este modo nos ahorraremos tener que instalar ningún otro plugin o addon que nos ayude a hacerlo.
Simplemente deberéis copiar este código en vuestro fichero functions.php y comenzar a usarlo:
function my_list_child_pages() { global $post; $childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->ID . '&echo=0' ); if ( $childpages ) { $string = '<ul>' . $childpages . '</ul>'; } return $string; }
Explicación por líneas:
- 2 : invocación de la variable global $post, que nos aporta el contexto de la página (o post) en el que se llama la función
- 4 : llamada a la función wp_list_pages de WordPress, pasando como parámetros:
- sort_column => menu_order (basado en el orden de cada una de las páginas indicado explícitamente)
- title_li = por si quedemos dar mas información al tipo listado
- child_of = indicamos el ID del post actual, para que solo se listen las hijas del mismo
- echo = 0, para no obtener un retorno del título
- 6 : si existen páginas, obtenemos su enlace y lo encapsulamos dentro de una lista no ordenada (<ul>)
- 10 : devolvemos el contenido de la función, imprimible en nuestra PHP
Ahora podemos llamar a esta nueva función desde cualqueira de nuestros ficheros PHP del tema, y obtendremos un listado de las páginas hijas a la actual. Para poder modificar su funcionalidad podéis retocar los parámetros de la función wp_list_pages, que también podéis definir como array.
<?php echo my_list_child_pages(); ?>
Encontraréis mas info en la url: https://developer.wordpress.org/reference/functions/wp_list_pages/
Un saludo!