Una vez que actualizamos nuestros blogs a WordPress 2.7, 2.8 o superior nos damos cuenta que uno de los más grandes cambios en estas versiones es la función:
<?php wp_list_comments(); ?>
Esta sola función es capaz de crear un listado de todos los comentarios de un post, con avatares de gravatar, fecha, pings, y paginación. Nuestros comentarios paginados se ven así por defecto:
Cambiar de tamaño
<?php wp_list_comments(); ?>
por defecto pone los avatares en 32×32 pixeles.
Para cambiar de tamaño sólo le mandamos la siguiente variable:
<?php wp_list_comments(array('avatar_size'=>48)); ?>
Siendo 48 el valor en pixeles para nuestros avatares, este puede ser 40, 60, 80 o como queramos. De hecho gravatar soporta avatares de 1 a 512 pixeles de tamaño.
Personalizar la imagen del Avatar Predeterminado
Antes de WorPress 2.7, uno podía personalizar el Avatar por defecto editando esto dentro del loop de comentarios:
get_avatar( get_comment_author_email(), $size = '48', $default = 'http://www.tupagina.com/wp-content/themes/.../images/gravatar.png' );
Pero con wp_list_comments()
esta función ya no se usa, porque el loop ahora es automático.
Si bien wp_list_comments()
hace de todo, algo que no es posible personalizar es la imagen del Avatar Predeterminado, osea para los comentaristas que no tengan gravatar WordPress por defecto pone una imagen con silueta gris, muy fea para mi gusto.
Es posible cambiar esta imagen en el panel de Control de WordPress, en:
Opciones – Discusión
Ahí WordPress nos dá estas 6 opciones:
- Misterioso
- En blanco
- Logotipo de Gravatar
- Identicon (generado)
- Wavatar (generado)
- MonsterID (generado)
En ninguna de las 6 opciones podemos poner una imagen personalizada, como esta que yo uso para Aeromental:
La única manera de solucionar esto es editar el archivo functions.php que viene dentro de nuestro tema.
Si no lo tienes deberás crearlo o copias el que viene por defecto en el Tema: Classic.
En functions.php se debe añadir la siguiente función:
if ( !function_exists('fb_addgravatar') ) {
function fb_addgravatar( $avatar_defaults ) {
$myavatar = get_bloginfo('template_directory') . '/images/gravatar.png';
$avatar_defaults[$myavatar] = 'Sin Gravatar';
return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'fb_addgravatar' );
}
En $my-avatar se pone la URL a nuestra imagen personalizada, en mi caso puse la URL dentro de mi template, en images.
El texto de $avatar_defaults es el texto que saldrá en el panel de control.
Todo esto lo único que hace es añadir una nueva opción en tu Panel de Control, y ahí eliges tu opción personalizada:
Nota: Estoy editando actualmente el look de los comentarios, para tenerlos como antes, y haré un siguiente post de como personalizar el diseño de estos.