Como alterar o avatar do usuário?

Existe alguma maneira de alterar o avatar do usuário sem plugins? Por que não existe uma seção “Upload do Avatar” em Usuários> Seu Perfil?

Não consigo usar um plugin. Eu sou cego ou estou obrigado a usar o Gravatar? ; /

Solutions Collecting From Web of "Como alterar o avatar do usuário?"

Os avatares devem ser controlados pelo usuário e não por você. Então, de certa forma, você está sendo forçado a usar o serviço Gravatar. Mas lembre-se, dá ao usuário a capacidade de usar o mesmo avatar em qualquer lugar, e você sempre pode restringir a exibição de um gravatar com base nas classificações de conteúdo (G, PG, PG-13, R).

Gravatar é um serviço hospedado, e é por isso que não há nenhuma seção “Carregar Avatar” no perfil.

Você diz que “não pode usar um plugin”, mas é realmente a única maneira de adicionar resources. Se você quiser usar algo diferente do Gravatar, você precisará carregar um plug-in para suportá-lo. Existem alguns plug-ins que suportam avatares locais:

  • Adicionar Avatar Local
  • Avatares locais simples

Caso contrário, eu recomendo que você informe seus usuários sobre o que são Gravatars e como usá-los.

Se você está perguntando como replace o gravatar padrão por um deles, você pode colocar esse código nas funções.php (ou melhor ainda, custom-functions.php se o seu tema o suportar).

 add_filter( 'avatar_defaults', 'customgravatar' ); function customgravatar ($avatar_defaults) { $myavatar = get_home_url('Template_directory') . '/images/mycustomgravatar.jpg'; $avatar_defaults[$myavatar] = "My Custom Logo"; return $avatar_defaults; } 

Crie um arquivo de imagem e faça o upload para o diretório de imagens do seu site. O “Meu logotipo personalizado” é o label da opção na seção Discussão do seu painel de controle. Desta forma, qualquer usuário que não tenha gravatar terá o logotipo do seu site.

Você precisa de um pouco mais de código para o avatar_defaults hook to work do que a resposta de Ray Mitchell, encontrei este código nas páginas de wordpress do codex e funcionou bem graças ao id de usuário normalizado passado para o gancho de avatar padrão (isso funciona com um ID de usuário simples ou email E com o próprio usuário do object)

  // Apply filter add_filter( 'get_avatar' , 'my_custom_avatar' , 1 , 5 ); function my_custom_avatar( $avatar, $id_or_email, $size, $default, $alt ) { $user = false; if ( is_numeric( $id_or_email ) ) { $id = (int) $id_or_email; $user = get_user_by( 'id' , $id ); } elseif ( is_object( $id_or_email ) ) { if ( ! empty( $id_or_email->user_id ) ) { $id = (int) $id_or_email->user_id; $user = get_user_by( 'id' , $id ); } } else { $user = get_user_by( 'email', $id_or_email ); } if ( $user && is_object( $user ) ) { if ( $user->data->ID == '1' ) { $avatar = 'YOUR_NEW_IMAGE_URL'; $avatar = "{$alt}"; } } return $avatar; } 

Sei que, em um site de projeto, consegui criar um campo na página do editor de perfil de usuário para aceitar um caminho de imagem (carregado através da página de mídia se eu me lembro direito) que poderia ser usado para avatares. Não é necessário nenhum plugin.

Percebi que isso depende de qual tema está ativado. Nenhuma opção no tema Mantra, por exemplo, mas existe uma opção no tema padrão do buddypress.

Você pode fazê-lo … Você precisa adicionar a imagem à sua mídia. Copie esse URL do arquivo de mídia e cole / vincule-o ao seu URL personalizado do avatar do usuário sob o usuário de edição. SORTED!

Adicione seu arquivo avatar.jpg à sua pasta de imagens de temas infantis e o seguinte código ao arquivo de funções de temas filho:

 add_filter( 'get_avatar' , 'add_custom_avatar' , 1 , 5 ); function add_custom_avatar( $avatar, $id_or_email, $size, $default, $alt ) { $user = false; if ( is_numeric( $id_or_email ) ) { $id = (int) $id_or_email; $user = get_user_by( 'id' , $id ); } elseif ( is_object( $id_or_email ) ) { if ( ! empty( $id_or_email->user_id ) ) { $id = (int) $id_or_email->user_id; $user = get_user_by( 'id' , $id ); } } else { $user = get_user_by( 'email', $id_or_email ); } if ( $user && is_object( $user ) ) { if ( $user->data->ID == '1' ) { $avatar = sprintf( '%s/images/avatar.jpg', get_stylesheet_directory_uri() ); $avatar = "{$alt}"; } } return $avatar; }