Image

Obtener el nombre de una página superior en WordPress

Hoy en día WordPress nos da mucho partido para el desarrollo de temas. Una de las funciones más básicas de un tema es obtener el nombre de la página que se esté nevegando, pero qué pasa cuando quieres obtener el nombre de su página superior de primer nivel.

A ver, explicando un poco mejor las cosas.

Supongamos la siguiente jerarquía de páginas

  • Servicios
  • -Consultorías
  • —Marketing Digital
  • —Imagen Pública

Tenemos que la página llamada Servicios tiene una página hija llamada Consultorías, ésta a su vez tiene dos hijas más que se llaman Marketing Digital y otra que se llama Imagen Pública.

En nuestra plantilla page.php con la función the_title(); obtenemos el nombre de la página que estemos viendo, pero ¿y si queremos obtener el nombre de la página superior de primer nivel? En este caso Servicios.

Pues bien, aquí te dejo la siguiente función que agregarás a functions.php y que nos ayudará a a obtener este nombre de la página abuela o en su defecto el nombre de la página madre.

Y para imprimir el resultado debemos poner esta línea en nuestro template

echo getPageAncestor($post->ID);

Ahora, vamos a explicar cada línea de la función que hemos creado acá arriba

  • Tenemos la línea #2 donde estamos declarando la función getPageAncestor($id) misma que estará recibiendo el parámetro id de la página actual.
  • En la línea #3 procedemos a obtener un array con todas las páginas superiores de la página actual. Este array ya viene en orden.
  • Dado que en la fecha de publicación de este artículo, WordPress no cuenta con una función nativa para determinar si una página es sub-página de otra; la línea 4 nos da una base para saberlo ya que obtenemos el valor 0 en caso de que no haya páginas superiores respecto de la que estamos navegando.
  • En la línea #6 es donde aprovechamos el valor que obtuvimos en la línea #4 y así podemos saber si se trata de una sub-página o no.
  • La línea #7 tiene como objetivo recorrer hasta el final el array obtenido en la línea #3 y tomar el valor que esté ahí. El valor que toma es el id de la página superior de primer nivel (que es el que queremos mostrar).
  • Una vez que tenemos el id de la página objetivo, la línea #8 nos devuelve todos sus atributos.
  • Y por fin, la línea #9 nos trae el título de la página superior de primer nivel.
  • La línea #10 y la #11 sólo nos devolverán el título de la página actual en caso de que no sea sub-página.

Espero y esta brevísima función sea de mucha utilidad para el desarrollo de sus temas.

Nota: no sólo se puede obtener el nombre de la página superior, también puedes consultar la función get_post() para saber qué otros datos puedes conseguir.

Acciones en WordPress para log in & log out