Boas notícias para as versões 4.2+ do WordPress
Desde a versão 4.2, a get_avatar_url()
função útil , introduzida como uma solicitação de recurso no ticket # 21195 há alguns anos, agora é fornecida com o núcleo :
/**
* Retrieve the avatar URL.
*
* @since 4.2.0
*
* @param mixed $id_or_email The Gravatar to retrieve a URL for. Accepts a user_id, gravatar md5 hash,
* user email, WP_User object, WP_Post object, or comment object.
* @param array $args {
* Optional. Arguments to return instead of the default arguments.
*
* @type int $size Height and width of the avatar in pixels. Default 96.
* @type string $default URL for the default image or a default type. Accepts '404' (return
* a 404 instead of a default image), 'retro' (8bit), 'monsterid' (monster),
* 'wavatar' (cartoon face), 'indenticon' (the "quilt"), 'mystery', 'mm',
* or 'mysterman' (The Oyster Man), 'blank' (transparent GIF), or
* 'gravatar_default' (the Gravatar logo). Default is the value of the
* 'avatar_default' option, with a fallback of 'mystery'.
* @type bool $force_default Whether to always show the default image, never the Gravatar. Default false.
* @type string $rating What rating to display avatars up to. Accepts 'G', 'PG', 'R', 'X', and are
* judged in that order. Default is the value of the 'avatar_rating' option.
* @type string $scheme URL scheme to use. See set_url_scheme() for accepted values.
* Default null.
* @type array $processed_args When the function returns, the value will be the processed/sanitized $args
* plus a "found_avatar" guess. Pass as a reference. Default null.
* }
* @return false|string The URL of the avatar we found, or false if we couldn't find an avatar.
*/
function get_avatar_url( $id_or_email, $args = null ) {
$args = get_avatar_data( $id_or_email, $args );
return $args['url'];
}
onde get_avatar_data()
também é uma nova função auxiliar.
Ele contém esta parte de código:
... CUT ...
/**
* Filter whether to retrieve the avatar URL early.
*
* Passing a non-null value in the 'url' member of the return array will
* effectively short circuit get_avatar_data(), passing the value through
* the {@see 'get_avatar_data'} filter and returning early.
*
* @since 4.2.0
*
* @param array $args Arguments passed to get_avatar_data(), after processing.
* @param int|object|string $id_or_email A user ID, email address, or comment object.
*/
$args = apply_filters( 'pre_get_avatar_data', $args, $id_or_email );
if ( isset( $args['url'] ) && ! is_null( $args['url'] ) ) {
/** This filter is documented in wp-includes/link-template.php */
return apply_filters( 'get_avatar_data', $args, $id_or_email );
}
... CUT ...
onde podemos ver que, quando o url
parâmetro é definido, os filtros disponíveis são pre_get_avatar_data
e get_avatar_data
.
Após atualizar para o 4.2 recentemente, tive um problema com um tema que definia sua própria versão get_avatar_url()
, sem nenhum prefixo de nome de função ou function_exists()
verificação. Portanto, este é um exemplo de por que isso é importante ;-)
Você pode usar o filtro
get_avatar
para obter todos os dados para o avatar, também o URL dentro da marcação. Eu acho que o WP não tem uma função para retornar apenas o URL da imagem do avatar.Além disso, você pode reescrever essa função dentro de um plug-in ou tema, a função é onyl active, se esse nome não estiver em outro local definido.
Portanto, é possível adicionar um parâmetro para retornar apenas o URL da imagem, assim, use o parâmetro
$url
comTRUE
e você obterá apenas o URL.Outra pequena variante é que você cria o URL com a regra do Gravatar.
use isso na sua fonte com os e-mails dos autores e você obterá o URL da imagem.
fonte
Eu acho que esta é uma versão melhor da resposta de aalaap:
fonte
O Avatares Locais Simples usa metadados para armazenar o avatar, para que você possa recuperar o (s) valor (es) chamando
get_user_meta
e pegando o campo 'simple_local_avatar'. Você receberá uma matriz assim:fonte
O método de alaap não funciona mais no Wordpress 4.2
Eu vim com uma solução. Aqui está e está funcionando bem:
no modelo, use:
Aviso: ele deve ser usado dentro de um loop.
fonte
Quando o avatar é carregado localmente, o WP retorna a tag img com o atributo src entre aspas duplas, então achei que esse padrão funcionava melhor:
fonte
Algumas horas atrás, eu estava pensando em como fazer isso também. Mas, logo que obtive a solução e criei um plugin, verifique se get_avatar_url ($ user_id, $ size) funciona ou não para você. Obrigado..
Código do plugin:
Uso:
Chamando a função:
Usando Shortcode:
fonte