Gute Nachrichten für WordPress-Versionen 4.2+
Seit Version 4.2 wird die praktische get_avatar_url()
Funktion, die vor einigen Jahren als Feature-Request in Ticket # 21195 eingeführt wurde, mit folgendem Kern ausgeliefert :
/**
* 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'];
}
wo get_avatar_data()
ist auch eine neue helferfunktion.
Es enthält diesen Codeteil:
... 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 ...
Wo wir sehen können, dass wenn der url
Parameter gesetzt ist, die verfügbaren Filter pre_get_avatar_data
und sind get_avatar_data
.
Nachdem ich kürzlich ein Upgrade auf 4.2 durchgeführt hatte, hatte ich ein Problem mit einem Thema, das eine eigene Version von definierte get_avatar_url()
, ohne dass ein Funktionsname vorangestellt oder function_exists()
überprüft wurde. Das ist also ein Beispiel dafür, warum das wichtig ist ;-)
Sie können den Filter verwenden,
get_avatar
um alle Daten zum Avatar zu übertragen, auch die URL innerhalb des Markups. Ich denke, WP hat keine Funktion, um nur die URL des Avatar-Bildes zurückzugeben.Sie können diese Funktion auch innerhalb eines Plugins oder Themas umschreiben. Die Funktion ist nur aktiv, wenn dieser Funktionsname nicht an einer anderen Stelle definiert ist.
Es ist also möglich, einen Parameter hinzuzufügen, um nur die URL des Bildes zurückzugeben. Verwenden Sie dazu den Parameter
$url
mitTRUE
und Sie erhalten nur die URL.Eine andere kleine Variante ist, dass Sie die URL mit der Regel von Gravatar erstellen.
Verwenden Sie dies auf Ihrer Quelle mit den E-Mails der Autoren und Sie erhalten die URL von dort Bild.
quelle
Ich denke, dies ist eine bessere Version von Aalaaps Antwort:
quelle
Simple Local Avatars verwendet Metafelder zum Speichern des Avatars, sodass Sie die Werte einfach abrufen können, indem
get_user_meta
Sie das Feld 'simple_local_avatar' aufrufen und abrufen. Sie erhalten ein Array wie folgt zurück:quelle
Die Methode von alaap funktioniert in Wordpress 4.2 nicht mehr
Ich habe eine Lösung gefunden. Hier ist es und es funktioniert gut:
in Template einfach benutzen:
Hinweis: Es muss innerhalb einer Schleife verwendet werden.
quelle
Wenn der Avatar lokal hochgeladen wurde, gibt WP das img-Tag mit dem src-Attribut in doppelten Anführungszeichen zurück, sodass ich fand, dass dieses Muster besser funktioniert:
quelle
Vor ein paar Stunden habe ich mich gefragt, wie ich das auch machen soll. Aber bald habe ich die Lösung gefunden und ein Plugin erstellt. Bitte überprüfe, ob get_avatar_url ($ user_id, $ size) für dich funktioniert oder nicht. Vielen Dank..
Plugin-Code:
Verwendung:
Aufruf der Funktion:
Verwenden des Shortcodes:
quelle