Diferente CSS por categoría

css edit

Si tienes que desarrollar un sitio con WordPress y, por el motivo que sea, quieres mostrar distinto CSS (imagen de fondo, estilos, etc) dependiendo de la categoría en que esté encuadrada la entrada, debes saber que es posible y no es en realidad complicado usando la tag de plantilla in_category.

Ahora bien, no es complicado pero hay que trabajar un poco. De momento tendrás que crear las hojas de estilo para cada categoría (o añadir clases nuevas) y, eso si, una vez hecha esta parte solo tendrás que añadir un poco de código a tu plantilla, normalmente en el archivo header.php:

<link rel="stylesheet" href="<?php bloginfo('template_url')?>/azul.css" type="text/css" media="screen,projection" />

<?php
if( in_category( 1 ) )
{
?>
<link rel="stylesheet" href="<?php bloginfo('template_url')?>/azul.css" type="text/css" media="screen" />	

<?php } elseif ( in_category (2) )
{
?>
<link rel="stylesheet" href="<?php bloginfo('template_url')?>/amarillo.css" type="text/css" media="screen" />

<?php } elseif ( in_category (33) )
{
?>
<link rel="stylesheet" href="<?php bloginfo('template_url')?>/negro.css" type="text/css" media="screen" />
<?php }	else { 	?>

<?php }	?>

En este ejemplo, a la categoría con el ID #1 se le asigna la hoja de estilos azul.css, y así sucesivamente.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(2 votos, promedio: 4.5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

17 comentarios en “Diferente CSS por categoría”

  1. Pingback: Bitacoras.com

  2. Pingback: Diferente CSS por categoría en Wordpress | CSSBlog ES

  3. Una implementación de este código, presumo, está en loserpower.com; independiente del contenido, muy NSFW, tiene un diseño excelente. Muy bien por revelar el misterio del diseño distinto por categoría!

  4. Si, a la hora de trabajar con categorias soy mas fan de usar el ID, es facil de saberlo pero tambien el slug es valido, me gusta esta tecnica, muy utiles para blogs multitematica, por ejemplo un blog de todo que quiere poner un fondo negro en una seccion de rock y un fondo rosa en una seccion de moda, yo que se la imaginacion no tiene limites.

    Tu post ha sido añadido a esta lista:
    http://www.conceptopixel.com/2009/10/marcadores-c

    Felicidades por tu tutorial, eres un idolo 😉

  5. Hola! pude hacerlo funcionar! pero me queda una duda nada mas, que es como hacer para que en el index donde estan todas las entradas de todas la categorias, tambien se respenten los colores de las entradas segun cada categoria!

    Muchas gracias! saludos!

  6. Buena pregunta charly!
    Yo tambien ando buscando lo mismo.
    Por ahira lo unico que me queda claro es el uso de "in_category" en el loop de index.php.
    No obstante aun no tengo 100% claro todo el procedimiento
    un saludo!

  7. Hola Fernando.

    Muy interesante el articulo. Solo que me parece que si escribimos "if( in_category( 1 ) )" como esta aqui, no va a funcionar.

    Creo que deberia ser if( is_category( 1 ) ) en vez de if( in_category( 1 ) )

    Me equivoco?

  8. gangas y ofertas

    Tengo la misma duda que Charly, como hacer para que en el index se muestren colores diferentes segun categoria? cuando entras en un post separado si que sale el color correcto, pero cuando esta en el index todos los post se marcan con el mismo color, se puede arreglar eso?

    Saludos y felicidad por el post

  9.  Hola,
    He probado este código pero tengo un pequeño problema.
    Tengo tres categorías la primera y segunda cargan el css indicado pero el tercero no… solo deja el templete de la segunda categoría.

    A que se debe esto?

    Saludos 

    1. Problema resuelto, solo hice caso al post de Fernando "  if( is_category( 1 ) ) en vez de if( in_category( 1 ) ) "

      Saludos

Deja un comentario

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

 

Ir arriba Ir al contenido