WordPress: Como hacer un template diferente para cada categoria

En un post anterior estuvimos hablando de como realizar estilos css diferentes para cada categoria, en este nos dedicaremos a cambiar por completo la estructura.

Pongamos como ejemplo que deseamos hacer un magazine y que cada seccion la queremos presentar de forma diferente. Lo primero que debemos hacer es crear cada categoría. Ya creadas debemos ver su ID correspondiente. Para poder verla debemos ir a “Categorias” y posicionar el mouse sobre la categoria deseada.

A continuación (que aquí esta el truco) crearemos un archivo con nuestro editor html (Dreamweaver, Coda, Textmate, Notepad, etc) llamado category-9.php, en su caso deberán suplantar el 9 (que es la ID de ejemplo) con la de ustedes. Vale aclarar que deberán hacer la estructura del archivo siempre respetando lo siguiente:

Terminado el archivo lo subiremos a la carpeta del tema (donde se encuentra index.php, archive.php, single.php, etc) en su FTP.

¿Qué es lo que hacemos con esto? WordPress, con cada archivo tiene un orden jerarquico, en el caso de las categorías, se usa comunmente archive.php que es el encargado de la template de nuestras categorias en general, pero al existir un archivo con el nombre category.php pierde su “rango” y pasa a segundo plano. Nosotros lo que hicimos fue agregar a category.php la ID correspondiente a la categoría que deseamos modificar.

Resumiendo: category-9.php SOLO modificará la categoría con la ID 9, el resto de las categorías tomará por default archive.php a menos que deseemos crear un category-X.php para cada una.

Modificado por última vez el día 10 de marzo de 2011 a las 14:24
  • A ver si alguien me puede ayudar!! Desde ya ¡muchas Gracias! lo que quiero hacer es una web de distintos clubes y al hacer clic en el escudo de cada club, en el widget, que vaya a su categoria con todas las noticias de ese club y que debajo de la cabecera siempre aparezca los datos del club (direccion, fecha aniversario, etc) Gracias

  • Emmanuel en ese caso deberías emplear la función de WordPress http://codex.wordpress.org/Function_Reference/in_category y realizar un “if” con PHP
    Esto por supuesto lo tienes que colocar en el archivo single.php

  • Me gusto el articulo y esta bien muestra la categoria la info como queramos de esa categoria pero… que pasa cuando le damos en leer mas como puedo hacer que el articulo completo de la categoria se vea distinto a todos.. por que lo que muestras arriba cambia solo la categoria es decir todos los articulos antes de leerlos completos…

  • Interesante para poder personalizar categorias con caracteristicas propias .

    Y si quisieramos utilizar el NOMBRE de la Categoria en vez de su ID. seria fabuloso xD

  • Saludos cordiales, gracias por el post muy bueno. solo tengo una duda. si yo quiero que por la categoria que le agregue a ese id category-9.php tenga un estilo diferente y un menu diferente para esa plantilla yo quiero que todas esa categoria de ese menu tambien tengan el mismo estilo. por ejemplo tengo la categoria Deportes y las sub categorias Beisbol, Futbol, Golf, Basket, Internacional, Otros Deportes. ahora en ese caso tendria que colocarle un category-10.php, category-11.php etc.. para cada subcategoria? no hay un solucion mas eficiente para ellos gracias. espero me puedas ayudar.

  • Me hiciste el día hombre, gracias. :)

  • Hola,

    muy interesante el post. Es posible hacer lo mismo pero con el archivo single .php ? Es decir, mostrar un diseño de estructura según la categoría dentro del post.

    Un saludo y gracias, interesante blog!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>