Generando un nuevo Template para una Página de Wordpress
A veces tenemos un theme para nuestro Blog instalado en Wordpress que satisface todas nuestras necesidades. Pero qué pasa si el theme tiene 2 sidebars, por ejemplo, como el mio y queremos escribir una página pero con una sola sidebar? O bien queremos escribir una página con otra sidebar diferente a las 2 por default que vienen con el theme? O mejor aún, qué pasa si queremos generar una página sin sidebars para poder aprovechar todo el ancho del theme? Algunos themes ya vienen con esta opción para poder hacerlo, pero otros no. La idea de este artículo es contarte cómo tenes que hacer para generar un nuevo template para poder utilizarlo en las páginas. En este caso vamos con el mas sencillo, SIN sidebars.
Cuando generamos una nueva página en Wordpress vamos al menú Write » Page (Escribir » Página). Si hacemos scroll hacia abajo vamos a encontrar una sección donde podemos cambiar el template que vamos a usar para dicha página. Si tu theme no viene con templates adicionales vas a tener como opciones el Default Template y el de Archives. Ahora bien, cómo agrego un template adicional?
Para esto vamos a necesitar generar un nuevo archivo .php y ponerlo en el mismo path o en la misma ruta donde se encuentran el resto de los archivos del theme que tengo instalado. En este caso vamos a generar un archivo en blanco llamado nosidebar-page.php. Lo subimos a nuestro hosting por medio del cliente de FTP que mas prefieras y luego lo podremos editar directamente desde Wordpress.
Una vez subido vamos a Design » Theme Editor. A la derecha debería estar listado nuestro archivo recien copiado "nosidebar-page.php". En caso de no estar revisá el haberlo copiado correctamente a la ruta de tu theme, en caso de si estar hacele un click para poder ver su contenido.
Obviamente está en blanco, así que primero miremos el contenido del default template actual. Por lo general, el archivo que maneja el formato de las páginas se llama page.php, esto puede variar, si varía te recomiendo que revises la documentación de tu theme a ver qué archivo utiliza para las páginas. Una vez abierto vamos a ver el contenido y parte de ese contenido hay que mantenerlo, ya que nosotros queremos hacer un template sin sidebars, pero si queremos mantener el resto del formato.
Hay ciertas secciones que se pueden identificar:
<?php get_header(); ?> : Esto hace que cargue el header de nuestro theme, un punto a mantener si queremos que lo contenga nuestra página.
Luego de este punto viene el contenido de la página, a veces llamado por un <div>, también es el momento de cargar el menú, etc.
<?php get_sidebar(); ?> : Esto es lo que llama a que cargue las sidebars.
<?php get_footer(); ?> : Esto hace que cargue el pie de página del theme.
Creo que está claro, debemos copiar todo el contenido excepto el que llama a la o las sidebars y pegarlo en nuestro archivo nosidebar-page.php. Ojo, ahí no termina todo, así que seguí los pasos que vienen porque es importante.
Una vez que pegaste ese código, arriba de la línea que llama el header debes pegar algo como lo siguiente:
<?php /* Template Name: NO Sidebar */ ?>
Eso le va a dar el nombre al template cuando lo seleccionemos en el menú de escritura. Es importante que definas un nombre sino no aparecerá como disponible.
Hasta acá todo bien, ya tenemos un template que podemos seleccionar y que no tiene sidebars, el problema es que el texto que uno escribe todavía se mantiene con el formato del template anterior, quiero decir, que si el ancho de este texto son 500px eso no lo cambiamos y vamos a tener todo vacío donde estaban las sidebars. Eso es porque debemos definir un nuevo código de formato para una página mas ancha.
Supongamos, nuestra sección de texto es de 500px, una sidebar de 100px y una segunda sidebar de 150px, eso haría una sección SIN sidebars de 750px disponibles para texto. Muy bien, recordemos este valor porque lo vamos a necesitar.
Busquemos en nuestro nosidebar-page.php la sección donde llama al texto, generalmente <?php the_content(); ?>. Sobre esta sección debe haber una línea con el título de la entrada y superior debe haber una línea que le da el formato al texto, generalmente <div class="nombreclase">. Ese nombre de clase lo necesitamos, pero por ahora cambiémoslo a nosidebar.
Guardamos lo realizado hasta ahora y vamos a editar el archivo style.css desde el mismo Editor de Theme. Acá buscamos la clase con el nombre que tenía mas arriba. Es clase va a definir varias cosas, pero principalmente el formato general del texto, ya sea tamaño de espacio a escribir, fuente, color, links, etc.
Hacemos un Find y buscamos .nombreclase (reemplazando con el nombre de la clase correcta). Copiamos y pegamos las líneas que encontremos con .nombreclase y las pegamos todas abajo de todo del archivo style.css, luego cambiamos el .nombreclase por .nosidebar. Ya tenemos la clase definida, ahora podemos modificarla, en alguno de los parámetros de la clase vas a encontrar:
.nombreclase {width:500px;……}
Esos son los 500px que mencionábamos mas arriba, bueno ese es el valor que habría que cambiar por 750px. Luego de modificarlo, guardamos y vamos a generar una nueva página con el nuevo template sin sidebars y todo el espacio entero.
Si algún formato no te agrada o no te gusta como queda, todo eso se controla desde la clase .nosidebar que acabás de generar y eso es totalmente modificable así que sentite libre de hacerlo a tu gusto. Cualquier duda o consulta dejame un comentario.
Email
|
Imprimir
|






De Radix el 25 Apr, 2008 | Responder
Muy Bueno, lo voy a provar che.
De Diego el 26 Apr, 2008 | Responder
@Radix: Gracias por el comentario, fijate, si tenes algun problema no dudes en consultarme ya que no se si me expresé bien en todo :P
Saludos!
De enrique el 6 May, 2008 | Responder
no me va. tengo el tema fluid yellow pero no me quita el sidebar
De Diego el 7 May, 2008 | Responder
@enrique: Ahí me bajé el template fluid yellow black y tu problema pasa porque la sidebar la está cargando desde el footer.php y no desde page.php.
Si editas el footer.php vas a encontrar un código así:
<div id="sidebars">
<?php get_sidebar(); ?>
<?php get_sidebar_right(); ?>
</div>
Ahí es cuando hace el llamado que comento mas arriba que por lo general se hace en la page.php para que no sea tan restrictivo. Para modificar en tu template habría que hacer un cambio mas grande. Tendrías que analizar el código de header.php page.php y footer.php, ponerlo junto y probar sacar la parte de la sidebar del footer y llevarlo a la page.php pero también tendrías que modificar otros archivos. Sino podrías probar hacer un segundo archivo footer2.php, sacar el llamado al footer de page.php y hacer un include para llamar a este nuevo footer sin la sidebar obviamente.
Lamento no poder ayudarte mas, pero como dije en el post, depende mucho de la programación de cada template.
Saludos!
De enrique el 8 May, 2008 | Responder
creo que cambiare de tema….
Gracia de todas formas
De Enrique el 14 May, 2008 | Responder
Hola diego, cambie de tema para intentar crear un template nuevo sin sidebar, y el tema que elegí no viene en la creación de la página la opción de crear un template.
He instalado este tema:
Green Lily 1.0 por Ashish sharma
Gracias
De Diego el 14 May, 2008 | Responder
@Enrique, no tengo problemas en ayudarte con el template que elijas pero no puedo encontrar ese que nombras, ni por nombre ni por autor. Si me pasas un link podré ayudarte ya que necesito bajarlo. Gracias
Saludos!
De Enrique el 14 May, 2008 | Responder
http://www.wordpressthemesbox.com/2008/05/03/green-lily/
Ahí va… gracias…
De Nicolas el 14 May, 2008 | Responder
Estuve leyendo tu post, estoy intentando cambiar de template para una pagina en wordpress 2.5 pero no encuentro el page template que decis, te juro que ando buscando un plugin hace rato y no puedo creer que wordpress lo tiene por defecto, pero no me sale en mi administracion, que puede ser?
De Diego el 15 May, 2008 | Responder
@Enrique, bueno ahí lo revisé…jaja este template también tiene sus cositas, ahí van los pasos para que generes un template de página sin sidebar:
1. Generate una copia del archivo page.php con nombre nosidebar.php
2. Editalo y borrá la siguiente línea:
<?php include (TEMPLATEPATH . ‘/sidebar.php’); ?>
Acá ya estaría sin sidebar, pero todavía no la podés usar como template y el ancho del texto seguiría igual. Para modificar esto:
3. Acá seguís el paso que comento mas arriba, justo antes de que llama al header con la línea <?php get_header(); ?> tenes que pegar el siguiente código:
4. Por último hay que modificar el diseño CSS para poder escribir en toda la pantalla y no solo en el tamaño que tiene hoy. Primero editamos nuevamente nuestro nosidebar.php y donde dice <div id="blog"> tenes que cambiarlo por <div id="blognosid"> .
5. Guardas ese archivo y ahora vamos a editar el style.css. Ahí tenes que copiar la línea #blog completa, la podes pegar justo debajo y cambiar el nombre blog por blognosid. Luego el parámetro de 588px lo podes agrandar hasta 930px que es el total del diseño, ahí poné el tamaño que vos quieras. Andá probando hasta que alguno te guste como quede.
Espero te sirva, cualquier duda o problema avisame. Probá a ver si te aparece como template disponible en una nueva página, si no aparece subí el punto 3 mas arriba.
Saludos!
De Diego el 15 May, 2008 | Responder
@Nicolas, si te referís a cambiar el template de una sóla página, se puede hacer desde Wordpress pero hay que editar el diseño que hayas elegido. Si lo que queres es hacer una página sin sidebars como comento en el artículo, decime qué template estas usando y te doy una mano para ver si lo podemos hacer.
Saludos!
De Enrique el 15 May, 2008 | Responder
Vale al final lo he conseguido, me ha costado un poquito, partiendo de la base que no tengo ni idea de programacion, pero al final tengo la página sin sidebar…
Pero me sale esto: Fatal error: Call to undefined function get_footer2
De que pude ser…
Por cierto miles de gracias….
De Diego el 16 May, 2008 | Responder
@Enrique, me alegra que “parte” te haya funcionado. Ahora por el error que me decís que aparece es raro porque nunca llama a esa función a menos que se te haya escapado un 2 después de footer. Fijate que exista la siguiente línea:
<?php get_footer(); ?>
Si tiene un 2 en algún lado sacalo ya que debe quedar como la original y como la puse ahí arriba. Avisame si era eso.
Saludos!