¿Qué debo hacer para que los avatares generados sean diferentes para los comentarios anónimos?

4

Todos los comentarios en mi sitio web son anónimos y sin registro. Para publicar un comentario, debe completar el nombre de los campos (no obligatoriamente) y el texto de su comentario (obligatoriamente).

Tengo el problema con los avatares. Todos ellos se generan de la misma manera.

¿Qué debo hacer para que sean diferentes?

    
pregunta mvod 13.07.2012 - 14:19

3 respuestas

6

Hay dos formas de personalizar el avatar predeterminado:

  1. Agrega un nuevo avatar predeterminado a Configuración / Discusión .
  2. Cambia la salida de get_avatar() .

Comencemos con la primera opción; esto se procesa un poco más rápido.

Agrega un nuevo avatar predeterminado a Configuración / Discusión

Hay un filtro 'avatar_defaults' . Puedes agregar más avatares aquí.
Obtiene una variedad de imágenes predeterminadas donde la clave es una URL y el valor es el nombre visible.

Código de ejemplo

add_filter( 'avatar_defaults', 'wpse_58373_kitten_avatar' );

/**
 * Add a new default avatar.
 *
 * @param  array $avatar_defaults Key = URL, Value = Visible name.
 * @return array
 */
function wpse_58373_kitten_avatar( $avatar_defaults )
{
    $avatar_defaults['http://placekitten.com/32/32'] = 'Kitty';

    return $avatar_defaults;
}

Resultado

Cambialasalidadeget_avatar().

get_avatar()buscaenunaopciónllamada'avatar_default'primero.Podemosenlazara'pre_option_avatar_default'ydevolverunaURLpersonalizada(aleatoria).

Códigodeejemplo

add_filter('pre_option_avatar_default','wpse_58373_custom_default_avatar');/***ReturnarandomimageURL*/functionwpse_58373_custom_default_avatar(){/*WeuseimagesfromWPhere,youshouldchangethisandputsomedefault*imagesintoyourthemeorplugindirectory.*/$base_url=admin_url('images').'/';$images=array('wp-logo-vs.png','wpspin_dark.gif','yes.png');$rand=rand(0,(count($images)-1));return$base_url.$images[$rand];}

Resultado

Como puede ver, debe devolver una imagen con un tamaño que coincida con el tamaño de avatar de su tema. :)

    
respondido por el fuxia 13.07.2012 - 17:31
2

Re: random avatar generation, esta fue una respuesta extremadamente útil y funcionó bien con una modificación menor: la función en cuestión requería un argumento para pasar. Sin el argumento, el código devuelto incluía una mezcla de html que incluía tanto la URL deseada de la imagen como la URL del icono predeterminado de Gravitar. Lo cambié de esto:

wpse_58373_custom_default_avatar ()

a esto:

wpse_58373_custom_default_avatar($value)

y que parecía generar la url de la imagen sin el revoltijo. Para facilitar su uso, el código final, con la adición de get_template_directory_uri () para orientar el tema en lugar de la carpeta de administración, y algunas variables de ocultación fue:

// Random Avatar

add_filter( 'pre_option_avatar_default', 'mind_bullets_default_avatar' );

function mind_bullets_default_avatar ( $value ) {

  $tix_array = array ( 'Amer_Cyborg.jpg', 'Die_hard_3.jpg', 'Thing.jpg' );

// Include randomizer in url generator
    return get_template_directory_uri().'/images/Avatars/'.$tix_array [rand( 0, ( count( $tix_array ) - 1 ) )]; 

}

Espero que los usuarios puedan elegir el suyo pronto, pero para aquellos que solo quieren comentar, mantiene el aspecto del sitio coherente.

    
respondido por el Stigwood 24.02.2016 - 08:20
-2

Para agregar a lo que ya se ha dicho, sugiero usar los "fragmentos de código" del complemento

De esta manera, sus modificaciones a los elementos internos de WordPress no chocarán con las actualizaciones, y realmente puede administrarlas (activarlas, desactivarlas, exportarlas ...)

Configuré un pequeño tutorial para crear avatares aleatorios personalizados utilizando la información de esta pregunta y los Fragmentos de código

tutorial de avatares aleatorios personalizados

Así es como se ve

El código que utilicé es bastante simple

// Random Chameleon Avatar

add_filter( 'pre_option_avatar_default', 'chameleon_default_avatar' );


function chameleon_default_avatar ( $value )
{
  return admin_url( 'images' ) . '/cham_avatars/cham_avatar'.rand( 0 , 13 ).'.jpg';
}
    
respondido por el nachoparker 01.02.2017 - 09:47

Lea otras preguntas en las etiquetas