WordPress: funcionalidad para listar páginas hijas

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!

 

Share Button

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.