Buenas noticias para WordPress versiones 4.2+
Desde la versión 4.2, la práctica get_avatar_url()
función, introducida como una solicitud de función en el boleto n . ° 21195 hace unos años, ahora se envía con el 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'];
}
donde get_avatar_data()
también hay una nueva función auxiliar.
Contiene esta parte del 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 ...
donde podemos ver que cuando url
se establece el parámetro, los filtros disponibles son pre_get_avatar_data
y get_avatar_data
.
Después de actualizar a 4.2 recientemente, tuve un problema con un tema que definía su propia versión get_avatar_url()
, sin ningún prefijo de nombre de función o una function_exists()
comprobación. Entonces este es un ejemplo de por qué eso es importante ;-)
Puede usar el filtro
get_avatar
para llevar todos los datos al avatar, también la URL dentro del marcado. Creo que WP no tiene una función para devolver solo la url si la imagen del avatar.También puede reescribir esta función dentro de un complemento o tema, la función está activa en onyl, si el nombre de esta función no está en otro lugar definido.
Por lo tanto, es posible agregar un parámetro para devolver solo la url de la imagen, así, use el parámetro
$url
conTRUE
y obtendrá solo la url.Otra pequeña variante es que creas la url con la regla de Gravatar.
use esto en su fuente con los correos electrónicos de los autores y obtendrá la URL de la imagen.
fuente
Creo que esta es una mejor versión de la respuesta de aalaap:
fuente
Avatares locales simples utiliza metacampos para almacenar el avatar, por lo que simplemente puede recuperar los valores llamando
get_user_meta
y tomando el campo 'simple_local_avatar'. Obtendrá una matriz como esta:fuente
El método de alaap ya no funciona en Wordpress 4.2
Se me ocurrió una solución. Aquí está y está funcionando bien:
en Plantilla solo usa:
Aviso: debe usarse dentro de un bucle.
fuente
Cuando el avatar se ha cargado localmente, WP devuelve la etiqueta img con el atributo src entre comillas dobles, por lo que descubrí que este patrón funcionó mejor:
fuente
Hace unas horas, me preguntaba cómo hacer eso también. Pero, pronto obtuve la solución e hice un complemento, compruebe si get_avatar_url ($ user_id, $ size) funciona para usted o no. Gracias..
Código de complemento:
Uso:
Llamando a la función:
Usando Shortcode:
fuente