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 = 0 ) {
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_attr( strip_tags( apply_filters( 'category_description', $category->description, $category ) ) ) . '</span>';
$link .= '<a href="' . esc_url( get_term_link($category) ) . '" ';
// Modificamos el codigo para mostrar nuestro personalizado
if ( $use_desc_for_title == 0 || empty($category->description) )
$link .= 'title="' . esc_attr( sprintf(__( 'View all posts filed under %s' ), $cat_name) ) . '"';
else
$link .= 'title="' . esc_attr( strip_tags( apply_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_url( get_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.