Bonne nouvelle pour les versions de WordPress 4.2+
Depuis la version 4.2, la get_avatar_url()
fonction pratique , introduite en tant que demande de fonctionnalité dans le ticket # 21195 il y a quelques années, est désormais livrée avec le noyau :
/**
* 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'];
}
où get_avatar_data()
est également une nouvelle fonction d'aide.
Il contient cette partie de code:
... 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 ...
où nous pouvons voir que lorsque le url
paramètre est défini, les filtres disponibles sont pre_get_avatar_data
et get_avatar_data
.
Après une mise à niveau vers 4.2 récemment, j'ai eu un problème avec un thème qui définissait sa propre version de get_avatar_url()
, sans aucun préfixe de nom de fonction ni function_exists()
vérification. C'est donc un exemple de pourquoi c'est important ;-)
Vous pouvez utiliser le filtre
get_avatar
pour obtenir toutes les données vers l'avatar, ainsi que l'URL à l'intérieur du balisage. Je pense que WP n'a pas de fonction pour renvoyer uniquement l'url si l'image de l'avatar.Vous pouvez également réécrire cette fonction dans un plugin ou un thème, la fonction est uniquement active, si ce nom de fonction n'est pas défini à un autre endroit.
Il est donc possible d'ajouter un param pour ne renvoyer que l'url de l'image, comme ceci, utilisez le param
$url
avecTRUE
et vous n'obtiendrez que l'url.Une autre petite variante est que vous créez l'url avec la règle de Gravatar.
utilisez-le sur votre source avec les e-mails des auteurs et vous obtenez l'url de leur image.
la source
Je pense que c'est une meilleure version de la réponse d'Aalaap:
la source
Les avatars locaux simples utilisent des méta-champs pour stocker l'avatar, vous pouvez donc simplement récupérer la ou les valeurs en appelant
get_user_meta
et en saisissant le champ «simple_local_avatar». Vous recevrez un tableau comme ceci:la source
La méthode d'Alaap ne fonctionne plus dans Wordpress 4.2
J'ai trouvé une solution. Le voici et ça marche bien:
dans le modèle, utilisez simplement:
Remarque: il doit être utilisé dans une boucle.
la source
Lorsque l'avatar a été téléchargé localement, WP, renvoie la balise img avec l'attribut src entre guillemets, j'ai donc trouvé que ce modèle fonctionnait mieux:
la source
Il y a quelques heures, je me demandais comment faire cela aussi. Mais, bientôt, j'ai obtenu la solution et créé un plugin, veuillez vérifier si get_avatar_url ($ user_id, $ size) fonctionne pour vous ou non. Merci..
Code du plugin:
Usage:
Appel de la fonction:
Utilisation de Shortcode:
la source