O que devo fazer para tornar os avatares gerados diferentes para comentários anônimos?

4

Todos os comentários no meu site são anônimos e sem registro. Para postar um comentário é necessário preencher o nome dos campos (não obrigatoriamente) e o texto do seu comentário (obrigatoriamente).

Eu tenho o problema com os avatares. Todos eles são gerados da mesma forma.

O que devo fazer para torná-los diferentes?

    
por mvod 13.07.2012 / 14:19

3 respostas

6

Existem duas maneiras de personalizar o avatar padrão:

  1. Adicione um novo avatar padrão a Configurações / Discussão .
  2. Altere a saída de get_avatar() .

Vamos começar com a primeira opção. isso processa um pouco mais rápido.

Adicione um novo avatar padrão para Configurações / Discussão

Existe um filtro 'avatar_defaults' . Você pode adicionar mais avatares aqui. Você obtém uma matriz de imagens padrão em que a chave é uma URL e o valor é o nome visível.

Código de amostra

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

Altereasaídadeget_avatar().

get_avatar()pesquisaemumaopçãochamada'avatar_default'primeiro.Podemosconectarem'pre_option_avatar_default'eretornarumURLpersonalizado(aleatório).

Códigodeamostra

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 você pode ver, deve retornar uma imagem com um tamanho que corresponda ao tamanho do avatar do seu tema. :)

    
por fuxia 13.07.2012 / 17:31
2

Re: geração de avatar aleatório, esta foi uma resposta extremamente útil e trabalhou um tratamento com uma pequena modificação - a função em questão exigia um argumento para passar. Sem o argumento, o código retornado incluía uma confusão de html que incluía o URL desejado da imagem, bem como o URL do ícone padrão do gravitar. Eu mudei isso:

wpse_58373_custom_default_avatar ()

para isso:

wpse_58373_custom_default_avatar($value)

e que parecia gerar o URL da imagem sem a confusão. Para facilidade de uso, o código final, com a adição de get_template_directory_uri () para direcionar o tema, em vez da pasta admin, e algumas variáveis de contenção foram:

// 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 ) )]; 

}

Esperamos permitir que os usuários escolham os seus em breve, mas para aqueles que apenas querem comentar, isso mantém a aparência do site consistente.

    
por Stigwood 24.02.2016 / 08:20
-2

Para adicionar ao que já foi dito, sugiro usar o plugin "trechos de código"

Dessa forma, suas modificações nos elementos internos do wordpress não colidirão com as atualizações, e você poderá gerenciá-las (ativar, desativar, exportá-las ...)

Eu configurei um pequeno tutorial para criar avatares aleatórios personalizados usando informações desta questão e trechos de código

tutorial de avatares aleatórios personalizados

É assim que parece

O código que usei é bastante simples

// 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';
}
    
por nachoparker 01.02.2017 / 09:47