Ola, somos Arume

Desenvolvemos páxinas web, aplicacións para móbiles, capas de realidade aumentada e aplicacións para Facebook. Apaixónanos a informática e somos uns perfeccionistas incurables; por eso nos nosos proxectos utilizamos estándares.

tel. 625 519 694

Mendaña de Neyra, 34, 3º B, 15008, A Coruña

Autenticarse

Rexistrarse. Esqueceches o teu contrasinal?

Etiquetas

Saltar as etiquetas

Subscríbete ás RSS

Estás en:

  • Inicio >
  • Blog >
  • Estrutura web en Wordpress: cargar o contido do primeiro fillo

Estrutura web en Wordpress: cargar o contido do primeiro fillo

15 Mai 2013 por Cruz

Comentarios: 0

Wordpress

A maior parte das páxinas web teñen unha estrutura organizada en varios niveis. Cando o cliente entrega os contidos vemos que moitas veces non hai nada nas seccións pai. Ó preguntar que contidos irán aí, a resposta máis habitual é que non queren nada, que cando piquen nesa sección se redirixa á primeira sección filla, é dicir, que só se utiliza a sección pai como contedor, para organizar os contidos.

Neste artigo explicaremos unha solución a este problema cando estamos desenvolvendo a páxina web co open source Wordpress.

Trátase de crear unha plantilla de páxina na que engadiremos o código para facer a redirección ó primeiro fillo.

Para facer unha plantilla de páxina debemos crear un ficheiro novo. As primeiras liñas do ficheiro deberán ser as palabras "Template Name" dentro de comentarios PHP. Un exemplo:

<?php
/*
Template Name: Cargar primeiro fillo
*/

A continuación poñeremos o código::

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

A primeira liña chama a get_pages que é unha función do núcleo do Wordpress para obter as seccións de tipo Page. Neste caso chamámola cos seguintes parámetros:

  • child_of = $post->ID: child_of é para recuperar só as seccións que son fillas do id indicado. $post->ID é o id da páxina na que estamos, polo tanto recuperamos os fillos da páxina actual.
  • sort_column = menu_order: sort_column indica o tipo de ordenación. Co valor menu_order facemos que os recupere segundo o campo Page Order.

O resultado final é que recuperamos nun array todas as páxinas fillas da actual ordenadas polo campo Page Order.

Na segunda liña metemos nunha variable o primeiro elemento do array anterior, é dicir o primeiro fillo e na terceira liña facemos unha redirección ó primeiro fillo.

Para acabar só nos queda engadir este ficheiro no directorio do noso tema (/wp-content/themes/o-meu-tema/) e a próxima vez que entremos a editar ou crear unha páxina, na sección de "Atributos de páxina" veremos unha nova plantilla no despregable co nome que poñamos logo de "Template Name", neste exemplo "Cargar primeiro fillo". Para facer que calquera páxina vaia ó primeiro fillo só teremos que ter seleccionada esta opción.

Consellos

  • Non poñer un nome excesivamente longo en "Template Name", xa que o despregable no que se mostra ten un máximo de 250px. Os nomes moi longos quedan cortados.
  • Poñer un nome ó ficheiro que nos recorde que é unha plantilla para páxinas e a plantilla que é. Para este exemplo un bo nome sería "redirect-first-child-page-template.php"

Mellora:

Unha posible mellora a este código é comprobar antes si a nosa páxina ten contido. En caso de telo mostramos o contido e, si non, redireccionamos ó primeiro fillo.

O código completo sería:

<?php
/*
Template Name: Cargar primeiro fillo
*/
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));
  }
}
?>

Máis información

Comentarios

0 comentarios. Comentar.

Comentar

Comentar de forma anónima

Podes comentar poñendo calquera nome ou alcume, exceptuando os nomes de usuarios rexistrados. Máximo de 50 caracteres.

Comentar como usuario rexistrado

Rexistrarse. Esqueceches o teu contrasinal?