it-swarm.com.de

die Avatar-URL anstelle eines HTML-IMG-Tags abrufen, wenn get_avatar verwendet wird?

ich möchte, dass die Benutzer-Avatar-URL als Hintergrund-URL-Stil für ein Div verwendet wird. Ich habe versucht, die folgenden zu verwenden, aber es gibt nichts zurück, wenn ich den Code sehe, sieht es so aus.

background: url()

ich habe diese Funktion benutzt.

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

hilfe bitte?

2
clarck

Es ist ziemlich einfach, die Gravatar-URL selbst zu erstellen. Es ist nur ein MD5-Hash der E-Mail-Adresse des Benutzers.

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

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

Der Parameter s am Ende definiert die Größe des Bildes in Pixel.

Verwenden von Gravataren -WordPress Codex

1
Jono Warren

Ab der WordPress-Version 4.2.0 können wir get_avatar_url () verwenden. Die Funktion finden Sie in 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'];
}

So können Sie es einfach verwenden, indem Sie:

$avatar_url = get_avatar_url($user_id);

Ich weiß auch, dass dies eine alte Frage ist, aber einegroße Lektion, die gelernt werden muss. Verwenden Sie beim Hinzufügen Ihrer benutzerdefinierten Funktionen immer Präfixe. Ihre benutzerdefinierte Funktion ist get_avatar_url(), ebenso wie die neu hinzugefügte Kernfunktion get_avatar_url(). Sie hätten beim Upgrade auf 4.2.0 eine Fehlermeldung erhalten.

1
<?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] : '';  

}

Wende einen Filter auf get_avatar an, er benötigt 5 Argumente (!). Der erste ist der vollständige <img>- Tag. Und vergessen Sie nicht, dass die Quelle in doppelte und einfache Anführungszeichen (["|']) eingeschlossen werden kann. Ich denke, das war der Punkt, an dem Ihre Funktion versagt hat.

1
Ralf912