En este tutorial, veamos cómo podemos manejar el trabajo con enlaces hacia y desde páginas principales y secundarias en sus temas. Es posible que vea estas jerarquías denominadas páginas y subpáginas de nivel superior. WordPress hace que sea fácil vincular páginas en su sitio de tal manera que sus visitantes puedan comprender fácilmente la jerarquía y la relación entre ellos. Usaremos la función wp_list_pages () para configurar una lista de páginas secundarias basada en la página principal en particular que hemos seleccionado. Echemos un vistazo a cómo configurar esto ahora.


Páginas principales y secundarias en el panel de WordPress

Por ejemplo, puede tener una página de Servicios y en esa página hay información sobre todos los servicios que puede proporcionar. Incluso puede tener suficiente contenido para dividir algunos de los servicios en su propia página. En este caso, hemos agregado una página secundaria de consultoría y una página secundaria de soporte técnico a la página principal de Servicios. WordPress indica esto visualmente al sangrar ligeramente la página secundaria y al poner un guión antes del nombre de la página secundaria.
ejemplo de páginas secundarias en wordpress


Cómo configurar la página principal de un niño

Es muy fácil asignar un padre a una página cuando crea una nueva página en WordPress. En cualquier página dada durante la creación o edición, si miramos la sección Atributos de la página, podemos ver un menú desplegable para elegir qué página de nivel superior nos gustaría que fuera la principal de esta página actual en la que estamos trabajando. Aquí continuaremos y configuraremos la página de Consultoría para tener un Padre de Servicios.
configurar una página de wordpress como padre de un niño


La navegación deseada

Ahora que tenemos algunas páginas secundarias configuradas, tendremos el objetivo de hacer que WordPress genere automáticamente enlaces secundarios a la página dependiendo de la página principal que estemos visitando. Entonces, si visitamos la página de ejemplo de WordPress que hemos configurado, no deberíamos ver enlaces secundarios. Sin embargo, si visitamos la página de Servicios, deberíamos ver dos enlaces a las páginas secundarias de consultoría y soporte técnico. Si está siguiendo, asegúrese de agregar la página principal de sus dos hijos al menú en el que hemos estado trabajando hasta ahora.
Agregar una página de nivel principal al menú principal


Presentamos la función de WordPress wp_list_pages ()

Para ayudarnos a lograr nuestro objetivo, haremos uso de la función wp_list_pages (). Esta función muestra una lista de páginas de su sitio en formato de lista. Genera automáticamente los elementos <li> para usted. Eso es algo que se ve a menudo con las funciones de WordPress, es que no solo devuelven valores, sino que en realidad generan html. Esta es una información importante para recordar. Así que sigamos adelante y agreguemos esta función a nuestro archivo page.php y veamos qué sucede.

Cuando ahora visitamos la página de Servicios, obtenemos el siguiente resultado.
visitando nuestra página principal

Si miramos la fuente del fragmento generado por esta función, se ve así:

Esto es muy interesante. La función no solo genera el html requerido para generar los enlaces en forma de lista, sino que también aplica clases de manera inteligente a las etiquetas <ul> y <li>.


Personalizar la salida de wp_list_pages ()

El comportamiento predeterminado de wp_list_pages () es generar enlaces a todas las páginas de su sitio como acabamos de ver. En nuestro caso, solo queremos enlaces secundarios de un padre específico. Para hacer esto, necesitaremos alterar el comportamiento de wp_list_pages () pasando algunos argumentos a la función. Veamos qué podemos hacer. Solo queremos mostrar páginas secundarias. Además, queremos deshacernos del texto de Pages que etiqueta los enlaces. Estos son los argumentos que podemos pasar como una matriz para hacer esto.

páginas secundarias en acción
Ahora, esto nos acerca a lo que queremos, pero aún no es perfecto. Observe que cuando hacemos clic en los enlaces secundarios reales, desaparecen. Lo que sería mejor es que pudiéramos hacer clic en los enlaces secundarios y el enlace principal permanecería activo, además de seguir ofreciendo enlaces secundarios. Podemos hacer esto, pero necesitamos agregar un código personalizado para manejar esto por nosotros. Primero, necesitamos agregar una nueva función a nuestro archivo functions.php. El propósito de esta función es encontrar el antepasado principal más superior de la página que se está viendo actualmente y su nombre será get_the_top_ancestor_id.

functions.php

Ahora queremos hacer uso de esta función en nuestro archivo page.php así:
page.php

Ahora bien, si esto funciona correctamente, nuestros enlaces secundarios deberían permanecer intactos incluso cuando hacemos clic en ellos. Vamos a ver cómo funciona.
los enlaces secundarios se muestran correctamente

¡Muy genial! Los enlaces secundarios ahora continúan mostrándose incluso cuando profundizamos en ellos. Sin embargo, algo no está del todo bien todavía. ¿Notaste que la página de ancestros no permanece encendida, por así decirlo? En otros trabajos, la pestaña Servicios ya no tiene un bonito fondo azul para indicar que es la página del ancestro activo. Podemos arreglar esto fácilmente agregando la clase current-page-ancestor a nuestra hoja de estilo style.css así.

Con esa simple adición, nuestra página anterior ahora debería permanecer activa mientras hacemos clic en sus páginas secundarias.
aplicar CSS a la página principal del ancestro


Aplicar estilo a los enlaces de Active Children

Lo último que haremos es aplicar el efecto 'iluminado' también a las páginas secundarias. WordPress es muy capaz en este sentido. Nos da una forma de rastrear no solo el estado activo principal, sino también el estado activo secundario al mismo tiempo. También agregaremos algunos efectos de estilo más a los enlaces de los niños. Aquí está el estilo que podemos aplicar a los enlaces secundarios en nuestro archivo style.css.

Compruébalo: ¡
enlaces de estado activo padre e hijo
bastante dulce! Ahora, tanto los enlaces principales como secundarios realizan un seguimiento de su estado y la interfaz de usuario presenta diferentes efectos estilísticos basados ​​en la página actual que está viendo el visitante del sitio.


Cómo utilizar wp_list_pages () para crear un resumen de menús de página principal y secundaria

En este tutorial, aprendimos algunas características interesantes sobre cómo trabajar con menús de página en WordPress. En primer lugar, vimos cómo configurar y reconocer los tipos de páginas principales y secundarias en el panel de WordPress y por qué podríamos querer utilizarlos. A partir de ahí, traducimos eso a lo que debería presentar la interfaz de usuario en función de si una página era principal o secundaria. La función wp_list_pages () nos ayudó a hacer el trabajo pesado en este sentido. Una vez más vimos que a la hora de trabajar con WordPress vamos a tener que ser conscientes de qué funciones nos pueden ayudar, así como de cómo personalizar su comportamiento en función de los argumentos que les pasemos.