17sep
17

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.

Para saber más:

  • Pingback: Bitacoras.com

  • http://www.dalerojo.net Cristian

    Tremendo post. puesto que yo funcionaba mis themes de la manera más larga y complicada. este post me ayudó mucho… como no pensarlo???

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

  • Li Chong

    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!

  • http://deprisa-deprisa.blogspot.com/ Deprisa

    Nosotros usamos blogger, pero nunca está de más conocer wordpress más a fondo.

  • http://ceslava.com/blog/ Cristian Eslava

    Hola,

    Si no queremos usar el ID podemos usar el slug, muchas veces más fácil de acceder.

    Ejemplo:

    ( in_category (‘wordpress’) )

    Saludos

    • http://fernandotellado.com/ Fernando Tellado

      Gracias por el apunte Cristian ;)

  • http://pqpq.es Cristian Eslava

    Además hay q tener en cuenta que sólo sirve si el post está en la categoría “wordpress” si está en una categoría “hija” (wordpress > plugins) no funciona, a menos que añadas esta función:

    http://codex.wordpress.org/Function_Reference/in_category#Testing_if_a_post_is_in_a_descendant_category

    Saludos

  • http://www.conceptopixel.com Luis Lopez

    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-creativos-octubre-2009.html

    Felicidades por tu tutorial, eres un idolo ;)

  • http://www.sancocho.com Jonas

    Si no es en el header.php en que otro lugar lo puedo poner.
    Gracias

  • charly

    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!

  • Jairo

    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!

  • http://fernandorognoni.com Fernando

    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?

  • http://www.hugoalfaro.com Hugo Alfaro

    Wow!… esta utilidad me ha sido de gran utilidad… ideal para los sitios tipo revista!..

  • http://www.aquihaydetodo.es 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

  • Nina

     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 

    • nina

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

      Saludos