Resultado de imagen para wordpress

¿Te gustaría aprender a Diseño Web?
Tenemos los cursos que necesitas.¡Haz clic aquí!

La mayor parte de las páginas web tienen una estructura organizada en varios niveles. Cuando el cliente entrega los contenidos vemos que muchas veces no hay nada en las secciones padre. Al preguntar qué contenidos irán ahí, la respuesta más habitual es que no quieren nada, que cuando pinchen en esa sección se redirija a la primera sección hija, es decir, que sólo se utiliza la sección padre como contenedor, para organizar los contenidos.

En este artículo se explicara una solución a este problema cuando estamos desarrollando la página web con el open source WordPress.

Se trata de crear una plantilla de página en la que añadiremos el código para hacer la redirección al primer hijo.

Para hacer un plantilla de página debemos crear un fichero nuevo. Las primeras líneas del fichero deberán ser las palabras “Template Name” dentro de comentarios PHP. Un ejemplo:

<?php
/*
Template Name: Cargar primer hijo
*/

A continuación pondremos el código:

$pagekids = get_pages("child_of=".$post->ID."&sort_column=menu_order");
$firstchild = $pagekids[0];
wp_redirect(get_permalink($firstchild->ID));
Resultado de imagen para wordpress

La primera línea llama a get_pages que es una función del núcleo del WordPress para obtener las secciones de tipo Page. En este caso la llamamos con los siguientes parámetros:

  • child_of = $post->ID: child_of es para recuperar sólo las secciones que son hijas del id indicado. $post->ID es el id de la página en la que estamos, por lo tanto recuperamos los hijos de la página actual.
  • sort_column = menu_order: sort_column indica el tipo de ordenación. Con el valor menu_orderhacemos que los recupere según el campo Page Order.

El resultado final es que recuperamos en un array todas las páginas hijas de la actual ordenadas por el campo Page Order.

En la segunda línea metemos en una variable el primer elemento del array anterior, es decir el primer hijo y en la tercera línea hacemos una redirección al primer hijo.

Para acabar sólo nos queda añadir este fichero en el directorio de nuestro tema (/wp-content/themes/mi-tema/) y la próxima vez que entremos a editar o crear una página, en la sección de “Atributos de página” veremos una nueva plantilla en el desplegable con el nombre que hayamos puesto después de “Template Name“, en este ejemplo “Cargar primer hijo”. Para hacer que cualquier página vaya al primer hijo sólo tendremos que tener seleccionada esta opción.

CONSEJOS

  • No poner un nombre excesivamente largo en “Template Name“, ya que el desplegable en el que se muestra tiene un máximo de 250px. Los nombres muy largos quedan cortados.
  • Poner un nombre al fichero que nos recuerde que es una plantilla para páginas y la plantilla que es. Para este ejemplo un buen nombre sería “redirect-first-child-page-template.php

MEJORA:

Una posible mejora a este código es comprobar antes si nuestra página tiene contenido. En caso de tenerlo mostramos el contenido y, si no, redireccionamos al primer hijo.

El código completo sería:

<?php
/*
Template Name: Cargar primer hijo
*/
if (have_posts()) {
  while (have_posts()) {
    the_post();
    $pagekids = get_pages("child_of=".$post->ID."&sort_column=menu_order");
    $firstchild = $pagekids[0];
    wp_redirect(get_permalink($firstchild->ID));
  }
}
?>

Te esperamos en los siguientes artículos en donde hablaremos mas acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.

¿Te gustaría aprender a Diseño Web?
Tenemos los cursos que necesitas.¡Haz clic aquí!
 
About Author

NGuerrero

0 0 votos
Article Rating
Suscribir
Notificar de
guest
0 Comments
Comentarios.
Ver todos los comentarios
0
¿Te gusta este articulo? por favor comentax
()
x
Abrir chat
¿Quieres aprender a programar?
Hola 👋,
¿Te interesa información de nuestros cursos?