Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Duda con wp_list_categories(), no destaca la categoría actual

Estas en el tema de Duda con wp_list_categories(), no destaca la categoría actual en el foro de WordPress en Foros del Web. Llevo varios días dándole de lado a esto, pero ya llegó la hora de entrarle defrente. El caso es que necesito listar las categorías que ...
  #1 (permalink)  
Antiguo 08/06/2012, 07:50
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Duda con wp_list_categories(), no destaca la categoría actual

Llevo varios días dándole de lado a esto, pero ya llegó la hora de entrarle defrente. El caso es que necesito listar las categorías que tengo en mi sitio web, pero no se destaca la categoría actual.

Esto es lo que tengo:
Código PHP:
Ver original
  1. <ul><?php wp_list_categories( array ( 'title_li' => '', 'taxonomy' => 'category', 'current_category' => 1 ) ) ?></ul>

Según la documentación el parámetro current_category => 1 permite que se muestre la clase css current-cat en la lista dependiendo de la categoría actual. También probé ponerle 0 por si acaso, pero nada

Lo curioso es que lo probé en el archivo category.php y todo ok, pero ahora lo tengo en otro archivo llamado sidebar-footer.php y no funciona...

Probé hacer el menú por mi cuenta mediante una función, pero me perdí en la parte de if ( $current_cat == $each_cat_id ) :....
Código PHP:
Ver original
  1. function cefnac_list_categories() {
  2. global $current_cat;
  3. $all_categories_id = get_all_category_ids();
  4. ?>
  5. <ul>
  6. <?php
  7.     foreach ( $all_categories_id as $each_cat_id ) :
  8.         if ( $current_cat == $each_cat_id ) :
  9.             $cat_class = 'current-cat';
  10.         else :
  11.             $cat_class = '';
  12.         endif;
  13. ?>
  14.         <li class="<?php echo $cat_class ?>"><a href="<?php echo esc_url( get_category_link( $each_cat_id ) ) ?>"><?php echo get_cat_name($each_cat_id); ?></a></li>
  15. <?php
  16.     endforeach;
  17. ?>
  18. </ul>
  19. <?php
  20. }
La variable $current-cat es igual a la función is_category(), que la llamo desde otra función...

¿Alguna idea? Gracias de antemano
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #2 (permalink)  
Antiguo 08/06/2012, 08:26
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Duda con wp_list_categories(), no destaca la categoría actual

Prueba así:
Código PHP:
Ver original
  1. $args = array( tus parámetros para get_categories );
  2. $categorias =  get_categories($args);
  3. $actual = get_query_var('cat');
  4.  
  5. foreach($categorias as $cats) {
  6.     $clase = $cats->term_id == $actual ? ' class="una-clase"' : null;
  7.     echo '<li'. $clase .'><a href="'. get_category_link( $cats->term_id ) .'">'. $cats->name .'</a></li>' ."\n";
  8. }
  #3 (permalink)  
Antiguo 08/06/2012, 09:31
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: Duda con wp_list_categories(), no destaca la categoría actual

Funciona perfectamente, lo he probado en un proyecto que tengo aquí en el local, que no es el que me ocupa actualmente, luego lo pruebo en el que realmente es...

Lo que me resulta muy curioso, es que he puesto wp_list_categories() en este local y sin pasar parámetro alguno funciona perfectamente... por eso te digo que cuando pruebe en el oficial veré si ya está ok o estoy tocando algo que no debo...

Gracias profe
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #4 (permalink)  
Antiguo 08/06/2012, 10:37
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Duda con wp_list_categories(), no destaca la categoría actual

Dos detalles Roger:

- (Por si acaso) nota que en el código estoy usando get_categories() en lugar de wp_list_categories().

- wp_list_categories() es una etiqueta tipo "usa y listo". Es más pensada para el diseñador que para el programador, por lo que no te deja mucho espacio cuando se trata de personalizar funciones. Siempre que te tropieces con una etiqueta de ese tipo: 1) Evítala, y 2) Puedes estar seguro que existe una función alternativa (o varias) más avanzada que te concede mayor libertad.
  #5 (permalink)  
Antiguo 08/06/2012, 10:47
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: Duda con wp_list_categories(), no destaca la categoría actual

Cita:
Iniciado por metacortex Ver Mensaje
Dos detalles Roger:

- (Por si acaso) nota que en el código estoy usando get_categories() en lugar de wp_list_categories().

- wp_list_categories() es una etiqueta tipo "usa y listo". Es más pensada para el diseñador que para el programador, por lo que no te deja mucho espacio cuando se trata de personalizar funciones. Siempre que te tropieces con una etiqueta de ese tipo: 1) Evítala, y 2) Puedes estar seguro que existe una función alternativa (o varias) más avanzada que te concede mayor libertad.
Como le digo a mi hijo, no te acostarás a dormir sin antes aprender algo nuevo...

Gracias Darío, tus sabios consejos siempre son bien recibidos
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #6 (permalink)  
Antiguo 12/06/2012, 07:58
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: Duda con wp_list_categories(), no destaca la categoría actual

Algo muy raro debí hacer, pues de ninguna manera me funciona. He probado muchas variantes en otros themes en mi mismo servidor y todo ok, cuando uso esas mismas variantes en el theme que estoy desarrollando no pasa nada.

Lo último que hoce fue agregar todas las funciones que tengo a un theme virgen, además de habilitar y desabilitar todos los plugins, y todo ok, pero en el theme que me ocupa, no hace nada...

Creo que me toca revisar linea por linea, y de una vez por todas trabajar con control de versiones, por suerte me he topado con esta guía que está masticadita
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #7 (permalink)  
Antiguo 12/06/2012, 16:15
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Duda con wp_list_categories(), no destaca la categoría actual

Intenta cambiando el nombre de las variables:

Código PHP:
Ver original
  1. $cat_arr = array( tus parámetros para get_categories );
  2. $categorias =  get_categories($cat_arr);
  3. $actual = get_query_var('cat');
  4.  
  5. foreach($categorias as $cats) {
  6.     $clase = $cats->term_id == $actual ? ' class="una-clase"' : null;
  7.     echo '<li'. $clase .'><a href="'. get_category_link( $cats->term_id ) .'">'. $cats->name .'</a></li>' ."\n";
  8. }
  9.  
  10. unset $cats;
  #8 (permalink)  
Antiguo 25/06/2012, 07:59
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: Duda con wp_list_categories(), no destaca la categoría actual

Finalmente pude dar con el problema, pasaba que estoy usando en otros lugares del theme algunos loop con WP_Query(), por ahora se va solucionando cambiando esto por por query_posts() y matando al final con wp_reset_query()

Lo que sucede conviene, me ha tocado armar todo desde cero (cuando lo tenía prácticamente terminado), pero ahora lo voy armando paso a paso y por primera vez usando Git

Gracias Meta por tus respuestas, siempre se aprende de ti
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose

Etiquetas: actual, php, tema
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:10.