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

Colocar texto adelnate de categoría en sidebar

Estas en el tema de Colocar texto adelnate de categoría en sidebar en el foro de WordPress en Foros del Web. Hola, he estado luchando para poner un texto delante de cada categoría que se muestra como widget en el sidebar, que código en functions.php tengo ...
  #1 (permalink)  
Antiguo 21/05/2013, 13:24
 
Fecha de Ingreso: junio-2012
Mensajes: 61
Antigüedad: 7 años
Puntos: 1
Colocar texto adelnate de categoría en sidebar

Hola, he estado luchando para poner un texto delante de cada categoría que se muestra como widget en el sidebar, que código en functions.php tengo que editar o añadir?

Gracias.
  #2 (permalink)  
Antiguo 21/05/2013, 19:32
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 10 años, 7 meses
Puntos: 33
Respuesta: Colocar texto adelnate de categoría en sidebar

Explicate mejor, o pon un ejemplo mas o menos de lo que quieres hacer.
  #3 (permalink)  
Antiguo 23/05/2013, 14:00
 
Fecha de Ingreso: junio-2012
Mensajes: 61
Antigüedad: 7 años
Puntos: 1
Respuesta: Colocar texto adelnate de categoría en sidebar

Cita:
Iniciado por 23r9i0 Ver Mensaje
Explicate mejor, o pon un ejemplo mas o menos de lo que quieres hacer.
Osea, tú has visto que en los widgets desplegable se puede poner el de las categorías? Pués ese me sale en el index y quiero personalizar cada una de las categorias...
  #4 (permalink)  
Antiguo 23/05/2013, 22:06
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 10 años, 7 meses
Puntos: 33
Respuesta: Colocar texto adelante de categoría en sidebar

Ok,
Bueno tienes algunas posibilidades.

- Crear tu widget personalizado
Con lo que podras hacer lo que quieras

- Crear solo una funcion
Tendras que añadirlo al sidebar.php correspondiente del index o añadir algun if para que solo se muestre en el index

- Editar el widget Categorias
Es practicamente igual que la opcion Crear tu widget personalizado pero sin tener que escribir todo el codigo con la desventaja que si solo lo quieres para algo en concreto y usas el widget para mostrar las categorias en otra pagina pero seleccionando alguna opcion tipo "Mostrar la cantidad de entradas" tambien se mostrara.
Salvo que ya hagas el codigo pensando en ello.

Ejemplo de Editar el widget Categorias:
Este ejemplo vamos ha usar la descripcion de la categoria para mostrar un texto delante de ella.

Código PHP:
add_filter'widget_categories_args''custom_title_cat' );
function 
custom_title_cat$cat_args ){
    
$custom_walker = new Custom_Walker;
    
// definimos use_desc_for_title en false para que no se vea en title del enlace
    
$args = array( 'use_desc_for_title' => false'walker' => $custom_walker );
    return 
array_merge$cat_args$args );

Este filtro nos permite editar los argumentos que se le pasan al widget, vease wp_list_categories

Código PHP:
class Custom_Walker extends Walker_Category {
    function 
start_el( &$output$category$depth 0$args = array(), $id ) {
        
extract($args);

        
$cat_name esc_attr$category->name );
        
$cat_name apply_filters'list_cats'$cat_name$category );
        
// Modificamos el codigo para mostrar nuestro personalizado
        
$link '<span class="custom-text">' esc_attrstrip_tagsapply_filters'category_description'$category->description$category ) ) ) . '</span>';
        
$link .= '<a href="' esc_urlget_term_link($category) ) . '" ';
        
// Modificamos el codigo para mostrar nuestro personalizado
        
if ( $use_desc_for_title == || empty($category->description) )
            
$link .= 'title="' esc_attrsprintf(__'View all posts filed under %s' ), $cat_name) ) . '"';
        else
            
$link .= 'title="' esc_attrstrip_tagsapply_filters'category_description'$category->description$category ) ) ) . '"';
        
$link .= '>';
        
$link .= $cat_name '</a>';

        if ( !empty(
$feed_image) || !empty($feed) ) {
            
$link .= ' ';

            if ( empty(
$feed_image) )
                
$link .= '(';

            
$link .= '<a href="' esc_urlget_term_feed_link$category->term_id$category->taxonomy$feed_type ) ) . '"';

            if ( empty(
$feed) ) {
                
$alt ' alt="' sprintf(__'Feed for all posts filed under %s' ), $cat_name ) . '"';
            } else {
                
$title ' title="' $feed '"';
                
$alt ' alt="' $feed '"';
                
$name $feed;
                
$link .= $title;
            }

            
$link .= '>';

            if ( empty(
$feed_image) )
                
$link .= $name;
            else
                
$link .= "<img src='$feed_image'$alt$title" ' />';

            
$link .= '</a>';

            if ( empty(
$feed_image) )
                
$link .= ')';
        }

        if ( !empty(
$show_count) )
            
$link .= ' (' intval($category->count) . ')';

        if ( 
'list' == $args['style'] ) {
            
$output .= "\t<li";
            
$class 'cat-item cat-item-' $category->term_id;
            if ( !empty(
$current_category) ) {
                
$_current_category get_term$current_category$category->taxonomy );
                if ( 
$category->term_id == $current_category )
                    
$class .=  ' current-cat';
                elseif ( 
$category->term_id == $_current_category->parent )
                    
$class .=  ' current-cat-parent';
            }
            
$output .=  ' class="' $class '"';
            
$output .= ">$link\n";
        } else {
            
$output .= "\t$link<br />\n";
        }
    }

Extendemos la class Walker_Category para sobreescribir la funcion start_el que es encarga de imprimir nuestro listado de la categorias, esta class NO funciona si el widget esta seleccionada la opcion Mostrar como desplegable si se desea modificarla estonces hay que extender la class Walker_CategoryDropdown.
  #5 (permalink)  
Antiguo 24/05/2013, 13:57
 
Fecha de Ingreso: junio-2012
Mensajes: 61
Antigüedad: 7 años
Puntos: 1
Respuesta: Colocar texto adelante de categoría en sidebar

Código PHP:
Ver original
  1. $link .= '<a class="button small" href="' . esc_url( get_term_link($category) ) . '" ';
  2.         if ( $use_desc_for_title == 0 || empty($category->description) )
  3.             $link .= 'title="' . esc_attr( sprintf(__( 'View all posts filed under %s' ), $cat_name) ) . '"';
  4.         else
  5.             $link .= 'title="' . esc_attr( strip_tags( apply_filters( 'category_description', $category->description, $category ) ) ) . '"';
  6.         $link .= '> ';
  7.         $link .= $cat_name . '</a>';

En está línea:

Código PHP:
Ver original
  1. $link .= '> ';

Después de > agrego esto:

Código PHP:
Ver original
  1. <i <?php if(is_category('webs')) { ?> class="cat-d"<?php } ?>></i>

Pero me da error debido a lo que contiene is_category.
  #6 (permalink)  
Antiguo 24/05/2013, 17:10
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 10 años, 7 meses
Puntos: 33
Respuesta: Colocar texto adelnate de categoría en sidebar

Claro, is category() se define en $post ( dentro del loop, por explicarlo rapido). Aparte que lo agregas mal, pero eso es otra historia. Tienes que aprender sino sabes o que te lo hagan.
Dicho esto

Código PHP:
if( $cat_name == 'webs' )
    
$link .= '<i class="cat-d">' $cat_name '</i></a>';
else
    
$link .= $cat_name '</a>'
  #7 (permalink)  
Antiguo 24/05/2013, 22:20
 
Fecha de Ingreso: junio-2012
Mensajes: 61
Antigüedad: 7 años
Puntos: 1
Respuesta: Colocar texto adelnate de categoría en sidebar

Cita:
Iniciado por 23r9i0 Ver Mensaje
Claro, is category() se define en $post ( dentro del loop, por explicarlo rapido). Aparte que lo agregas mal, pero eso es otra historia. Tienes que aprender sino sabes o que te lo hagan.
Dicho esto

Código PHP:
if( $cat_name == 'webs' )
    
$link .= '<i class="cat-d">' $cat_name '</i></a>';
else
    
$link .= $cat_name '</a>'
A la hora que muestra en html, sale así:

Código HTML:
Ver original
  1. <a a="" android<="" title="Ver todas las entradas archivadas en Android" href="http://localhost/categoria/android/">
  2. </a>

Y no sale nada.
  #8 (permalink)  
Antiguo 25/05/2013, 07:25
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 10 años, 7 meses
Puntos: 33
Respuesta: Colocar texto adelnate de categoría en sidebar

lo acabo de probar en local y funciona sin problemas.
  #9 (permalink)  
Antiguo 25/05/2013, 10:48
 
Fecha de Ingreso: junio-2012
Mensajes: 61
Antigüedad: 7 años
Puntos: 1
Respuesta: Colocar texto adelnate de categoría en sidebar

Cita:
Iniciado por 23r9i0 Ver Mensaje
lo acabo de probar en local y funciona sin problemas.
Es que quiero que el <i class="cat-d"></i> se muestre si es la categoría android, pero no sale el icono.
  #10 (permalink)  
Antiguo 25/05/2013, 11:00
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 10 años, 7 meses
Puntos: 33
Respuesta: Colocar texto adelnate de categoría en sidebar

Lo tienes online?
  #11 (permalink)  
Antiguo 25/05/2013, 19:08
 
Fecha de Ingreso: junio-2012
Mensajes: 61
Antigüedad: 7 años
Puntos: 1
Respuesta: Colocar texto adelnate de categoría en sidebar

Cita:
Iniciado por 23r9i0 Ver Mensaje
Lo tienes online?
No, todo local.
  #12 (permalink)  
Antiguo 25/05/2013, 19:34
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 10 años, 7 meses
Puntos: 33
Respuesta: Colocar texto adelnate de categoría en sidebar

buenas noches,
Quieres hacerlo solo ha una categoria o ha todas?
Sino sale puede ser por el css pero sin poder verlo no puedo hacer mucho mas.
  #13 (permalink)  
Antiguo 25/05/2013, 22:10
 
Fecha de Ingreso: junio-2012
Mensajes: 61
Antigüedad: 7 años
Puntos: 1
Respuesta: Colocar texto adelnate de categoría en sidebar

Cita:
Iniciado por 23r9i0 Ver Mensaje
buenas noches,
Quieres hacerlo solo ha una categoria o ha todas?
Sino sale puede ser por el css pero sin poder verlo no puedo hacer mucho mas.
Osea, en sí, lo que quiero hacer es que muestre un icono si es tal categoría y asi.
  #14 (permalink)  
Antiguo 26/05/2013, 00:57
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 10 años, 7 meses
Puntos: 33
Respuesta: Colocar texto adelnate de categoría en sidebar

A ver empezado por hay.

El mismo widget sin modificaciones trae una serie de clases que puedes usar para lo que te propones, son del tipo cat-item cat-item-61 el 61 es la id de la categoria y cada una tiene una diferente.
Si sabes css no tendras problemas.
  #15 (permalink)  
Antiguo 26/05/2013, 13:11
 
Fecha de Ingreso: junio-2012
Mensajes: 61
Antigüedad: 7 años
Puntos: 1
Respuesta: Colocar texto adelnate de categoría en sidebar

Cita:
Iniciado por 23r9i0 Ver Mensaje
A ver empezado por hay.

El mismo widget sin modificaciones trae una serie de clases que puedes usar para lo que te propones, son del tipo cat-item cat-item-61 el 61 es la id de la categoria y cada una tiene una diferente.
Si sabes css no tendras problemas.
te entiendo, pero el icono se muestra con <i class="icon-cat"></i>

toda esa línea la necesito delante de la categoriía.
  #16 (permalink)  
Antiguo 26/05/2013, 20:22
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 10 años, 7 meses
Puntos: 33
Respuesta: Colocar texto adelnate de categoría en sidebar

Y por que no usas el li con un padding o quieres poner el texto en cursiva, que aun creo que no es necesario modificar el widget. Ya que tambien lo puedes hacer desde el css

Etiquetas: categorias, sidebar
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 17:37.