web-dev-qa-db-fra.com

récupère l'url de l'avatar au lieu d'une balise html img lors de l'utilisation de get_avatar?

je veux que l'URL de l'avatar de l'utilisateur l'utilise comme style d'URL de fond pour un div. J'ai essayé d'utiliser ce qui suit, mais il ne renvoie rien lorsque je visualise le code, il apparaît comme ça.

background: url()

j'ai utilisé cette fonction.

function get_avatar_url($get_avatar){
preg_match("/src='(.*?)'/i", $get_avatar, $matches);
return $matches[1];
}

toute aide s'il vous plaît ??

2
clarck

C'est assez simple de construire l'URL de Gravatar vous-même, c'est juste un hachage MD5 de l'adresse email de l'utilisateur.

<?php $gravatar = 'http://www.gravatar.com/avatar/' . md5(strtolower($email)) . '&s=32'; ?>

<div class="avatar" style="background: url(<?php echo $gravatar ?>);" ></div>

Le paramètre s à la fin définit la taille de l'image en pixels.

Utilisation de Gravatars -WordPress Codex

1
Jono Warren

A partir de WordPress version 4.2.0, nous pouvons utiliser get_avatar_url () . La fonction peut être trouvée dans wp-includes/link-template.php:

function get_avatar_url( $id_or_email, $args = null ) {
    $args = get_avatar_data( $id_or_email, $args );
    return $args['url'];
}

Donc, vous pouvez simplement l'utiliser par:

$avatar_url = get_avatar_url($user_id);

De plus, je sais que c’est une vieille question, mais ungrande leçon à apprendre. Toujours utiliser les préfixes lorsque vous ajoutez vos fonctions personnalisées. Votre fonction personnalisée est get_avatar_url(), de même que la fonction principale nouvellement ajoutée, get_avatar_url(). Vous auriez reçu une erreur lors de la mise à niveau vers la version 4.2.0.

1
Christine Cooper
<?php
add_filter(
    'get_avatar',
    'get_avatar_url',
    10,
    5
);

function get_avatar_url( $avatar, $id_or_email, $size = 96, $default = '', $alt = '' ) {

    preg_match( '#src=["|\'](.+)["|\']#Uuis', $avatar, $matches );

    return ( isset( $matches[1] ) && ! empty( $matches[1]) ) ?
        (string) $matches[1] : '';  

}

Appliquez un filtre sur get_avatar, il faut 5 arguments (!). Le premier est l'intégralité du <img>- tag. Et n'oubliez pas que la source peut être entourée de guillemets doubles et simples (["|']). Je suppose que c'était le point où votre fonction a échoué.

1
Ralf912