Como cambiar el Avatar Predeterminado en WordPress 2.7, 2.8 y superior

@ 16 . julio . 2009

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:

Comentarios paginados

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 Misterioso
  • En blanco En blanco
  • Gravatar Logotipo de Gravatar
  • Identicon Identicon (generado)
  • Wavatar Wavatar (generado)
  • MonsterID MonsterID (generado)

En ninguna de las 6 opciones podemos poner una imagen personalizada, como esta que yo uso para Aeromental:

Avatar por defecto en 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:

Cambiar Avatar Predeterminado

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.

Autor del post: DanielSemper: @aeromental + Facebook

  • FusionTribal

    Wooo!

    Excelente, asi de fácil…

    Gracias!

  • De nada, FusionTribal, la verdad quise que parezca fácil porque lo es, aunque el post salió algo largo por los detalles que doy, me alegra que te haya gustado.

  • José Martínez

    Bien fácil, aunque en al gunos templates agregar el segmento de código a la página “functions.php” puede deshabilitarte los gráficos del plugin de estadísticas.

  • Pley

    Gracias, realmente necesitaba este dato, como estoy rediseñando 4pley ñ_ñ wiiiii

  • Denshou

    Hola!
    Como se haría para que “yo” como administrador de mi blog tenga un “avatar” especial, y los comentaristas tengan otro avatar (digamos, un mismo avatar para todos, y uno especial para mi).

    NOTA: cuando uso GRAVATAR.com sucede que tengo que estar aprebando mis propios comentarios y eso es poco practico.

    Gracias

  • Creo que lo que tienes que hacer es crearte un usuario admin que use el mismo email que el que usas para tu gravatar, nada mas.

  • Alvaro

    Excelente DanielSemper, excelente, muchas gracias, recién estoy empezando con wordpress, y esto es justo lo que necesitaba…. gracias!!!

  • Andrés

    Buen post! Gracias por la info!

  • Franco

    ¡Muchas gracias! Ahora pude sacar esa imagen de mi blog ;)

  • Red Oaxaca

    Increible me funciono a la maravilla :D pero sigo teniendo duda, como cambio el avatar del admin :D ??

  • Si activas Gravatar, el avatar del admin será el que gustes siempre y cuando lo subas a Gravatar.com y uses tu email en la parte de Usuarios, Admin.

  • TheHacker01

    Disculpame, pero no veo en el post donde dice como poner el avatar al administrador o seleccionar que a los usuarios sin avatares se les seleccione un avatar de entre unos cuantos que yo elija.
    Y no entiendo eso de “gravatar.com” ya que no entiendo como utilizarlo, es decir, yo pienso solo subir las imágenes por FTP y listo.
    ¿Me ayudas?

  • Garita

    Increíble, muy útil, gracias

  • Tecnosabios

    realmente esta bueno aunque ando buscando la manera de como seleccionar una galería de avatares predeterminados