Cambiar color de fondo del título de entrada en CSS

Kelath Seguir

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
1 Sep 2013
Mensajes
3
Hola amigos, he empezado hace poco a crear mi propio theme, es estilo metro. Cada titulo de entrada tiene fondo y quiero que ese fondo dependiendo de la categoría que se encuentre la entrada sea de un color u otro.

Llevo un dos días mirando e intentándolo y no soy capaz :\ A ver si sois capaces de solucionarlo, os dejo el código del titulo:

Insertar CODE, HTML o PHP:
<?php the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" title="' . esc_attr( sprintf( __( 'Enlace a %s', 'ari' ), the_title_attribute( 'echo=0' ) ) ) . '" rel="bookmark">', '</a></h2>' ); ?>

Gracias!
 

shadowhck

Lambda
Programador
Verificado por Whatsapp
Desde
18 Ago 2009
Mensajes
2.772
Normalmente te debería funcionar usar:
.category-categoria-machine-name .entry-title {
/* ... */
}
/* - o bien - */
.category-ID .entry-title {
/* .. */
}

En el elemento body encuentras varias clases según la página. :encouragement:

----

Leyendo nuevamente la pregunta, podría ser:

Por medio de la funcion,

get_categories()

Obtienes todos los datos de las categorias para comparar, y con,


puedes determinar en cual categoria se encuentra, y asignarle una determinada clase segun sea necesario.

http://codex.wordpress.org/Function_Reference/has_category
http://codex.wordpress.org/Function_Reference/get_categories
 
Última edición:

Kelath

Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
1 Sep 2013
Mensajes
3
Shadowhck, la solución que yo había pensado es que la id se generara sola, pero no he sido capaz.

Lo suyo es que se generara así:

class="entry-title-IDCategoria"

Lo intente así, pero no genera la ID :ambivalence:
<?php the_title( '<h2 class="entry-title -<?php has_category( $category); ?>"><a href="' . esc_url( get_permalink() ) . '" title="' . esc_attr( sprintf( __( 'Enlace a %s', 'ari' ), the_title_attribute( 'echo=0' ) ) ) . '" rel="bookmark">', '</a></h2>' ); ?>

Mi conocimiento sobre PHP es nulo, pero supongo que al estar abierto php the_title eso no puede ir ahí.

---------- Post agregado el 19-sep-2013 hora: 08:07 ----------

Bueno, ya lo he solucionado después de leer un poco de PHP, os dejo una solución por si alguien se encuentra con el mismo problema :)

Por una parte declaramos
<?php $category = get_the_category(); $mostrarcat = $category[0]->cat_ID; ?>

y luego la llamamos
<?php the_title( '<h2 class="entry-title-'. $mostrarcat .'"><a href="' . esc_url( get_permalink() ) . '" title="' . esc_attr( sprintf( __( 'Enlace a %s', 'ari' ), the_title_attribute( 'echo=0' ) ) ) . '" rel="bookmark">', '</a></h2>' ); ?>

Gracias!
 
Última edición:

shadowhck

Lambda
Programador
Verificado por Whatsapp
Desde
18 Ago 2009
Mensajes
2.772
Aunque con eso podrias seleccionar una categoria erronea, por ejemplo, si solo lo necesitas para categorias principales, bien se te puede seleccionar una que no lo sea.

Puedes hacer lo siguiente, y aqui determinas solo las categorias validas:

PHP:
<?php
// Solo las categorias principales que se quieren personalizar.
$categorias = array(
    array(1 => 'categoria1_slug', 2 => 'clase-css'),
    array(1 => 'categoria2_slug', 2 => 'clase-css'),
    array(1 => 'categoria3_slug', 2 => 'clase-css'),
);

foreach($categorias as $categoria) {
    if ( has_category($categoria[1]) ) {
       // Se imprime la clase de la categoria.
        echo $categoria[2];
        break;
    }
}

Hay formas mas eficientes, pero esto es algo sencillo.
Te recomiendo usar un editor con coloreo para ver poder ver los errores en el codigo. :encouragement:
 
Última edición:
Arriba