Хорошие новости для WordPress версии 4.2+
Начиная с версии 4.2 удобная get_avatar_url()
функция, представленная несколько лет назад как запрос функции в билете № 21195 , теперь поставляется с ядром :
/**
* 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'];
}
где get_avatar_data()
также новая вспомогательная функция.
Он содержит эту часть кода:
... 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 ...
где мы можем видеть, что когда url
параметр установлен, доступные фильтры pre_get_avatar_data
и get_avatar_data
.
После недавнего обновления до 4.2 у меня возникла проблема с темой, в которой была определена собственная версия get_avatar_url()
, без префикса имени функции или function_exists()
проверки. Так что это пример того, почему это важно ;-)
Вы можете использовать фильтр
get_avatar
для получения всех данных для аватара, а также URL внутри разметки. Я думаю, что WP не имеет функции для возврата только URL-адреса, если изображение аватара.Также вы можете переписать эту функцию внутри плагина или темы, функция активна только в том случае, если имя этой функции не определено в другом месте.
Таким образом, можно добавить параметр для возврата только URL-адреса изображения, например, используйте параметр
$url
с,TRUE
и вы получите только URL-адрес.Еще один маленький вариант, что вы создаете URL с правилом Gravatar.
используйте это в своем источнике с электронными письмами авторов, и вы получите URL-адрес изображения.
источник
Я думаю, что это лучшая версия ответа aalaap:
источник
Простые локальные аватары используют мета-поля для хранения аватара, поэтому вы можете просто получить значения, вызвав
get_user_meta
и захватив поле 'simple_local_avatar'. Вы получите возвращенный массив следующим образом:источник
Метод alaap больше не работает в Wordpress 4.2
Я придумал решение. Вот и он работает хорошо:
в шаблоне просто используйте:
Обратите внимание: он должен использоваться внутри цикла.
источник
Когда аватар был загружен локально, WP возвращает тег img с атрибутом src в двойных кавычках, поэтому я обнаружил, что этот шаблон работает лучше:
источник
Несколько часов назад мне было интересно, как это сделать тоже. Но вскоре я получил решение и создал плагин, пожалуйста, проверьте, работает ли get_avatar_url ($ user_id, $ size) у вас или нет. Благодарность..
Код плагина:
Использование:
Вызов функции:
Используя шорткод:
источник