Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/05/2013, 22:06
Avatar de 23r9i0
23r9i0
 
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 15 años, 5 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.