Berita baik untuk versi WordPress 4.2+
Karena versi 4.2 get_avatar_url()
fungsi praktis , diperkenalkan sebagai permintaan fitur di tiket # 21195 beberapa tahun yang lalu, sekarang dikirimkan dengan inti :
/**
* 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'];
}
di mana get_avatar_data()
juga merupakan fungsi pembantu baru.
Ini berisi bagian kode ini:
... 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 ...
di mana kita dapat melihat bahwa ketika url
parameter diatur, filter yang tersedia adalah pre_get_avatar_data
dan get_avatar_data
.
Setelah memutakhirkan ke 4.2 baru-baru ini, saya punya masalah dengan tema yang mendefinisikan versi sendiri get_avatar_url()
, tanpa awalan nama fungsi atau function_exists()
cek. Jadi ini adalah contoh mengapa itu penting ;-)
Anda dapat menggunakan filter
get_avatar
untuk mendapatkan semua data ke avatar, juga url di dalam markup. Saya pikir, WP tidak memiliki fungsi untuk hanya mengembalikan url jika gambar avatar.Anda juga dapat menulis ulang fungsi ini di dalam plugin atau tema, fungsinya onyl aktif, jika nama fungsi ini tidak di tempat lain yang ditentukan.
Jadi dimungkinkan untuk menambahkan param untuk mengembalikan hanya url gambar, seperti ini, gunakan param
$url
denganTRUE
dan Anda hanya mendapatkan url.Varian kecil lainnya adalah, Anda membuat url dengan aturan Gravatar.
gunakan ini pada sumber Anda dengan email penulis dan Anda mendapatkan url gambar di sana.
sumber
Saya pikir ini versi yang lebih baik dari jawaban aalaap:
sumber
Avatar Lokal Sederhana menggunakan bidang meta untuk menyimpan avatar, sehingga Anda dapat mengambil nilai dengan menelepon
get_user_meta
dan mengambil bidang 'simple_local_avatar'. Anda akan mendapatkan kembali array seperti itu:sumber
Metode alaap tidak berfungsi lagi di Wordpress 4.2
Saya datang dengan solusi. Ini dia dan berfungsi dengan baik:
di Template cukup gunakan:
Perhatikan: itu harus digunakan di dalam satu lingkaran.
sumber
Ketika avatar telah diunggah secara lokal, WP, mengembalikan tag img dengan atribut src dalam tanda kutip ganda, jadi saya menemukan pola ini bekerja lebih baik:
sumber
Beberapa jam yang lalu, saya bertanya-tanya bagaimana cara melakukannya juga. Tapi, segera saya mendapat solusinya dan membuat plugin, silakan periksa apakah get_avatar_url ($ user_id, $ size) cocok untuk Anda atau tidak. Terima kasih..
Kode plugin:
Pemakaian:
Memanggil fungsi:
Menggunakan Shortcode:
sumber