Получение URL-адреса аватара в WordPress: функция get_avatar_url()

## Получение URL-адреса аватара в WordPress

Функция get_avatar_url() позволяет получить URL-адрес аватара пользователя. В этой статье мы подробно рассмотрим, как использовать эту функцию в WordPress.

### Основная информация

- **Функция:** get_avatar_url()
- **Версия:** WP 4.2.0
- **Скорость выполнения:** Очень высокая - 1 раз выполняется за 0.00008 сек, 50000 раз - за 1.67 сек.
- **Хуки:** Отсутствуют.

### Возврат значения

Функция возвращает либо строку с URL-адресом аватара, либо false, если произошла ошибка.

### Использование функции

```php
get_avatar_url( $id_or_email, $args );

Параметры

  • $id_or_email (mixed) (обязательный): Здесь вы можете передать:

    • ID пользователя
    • MD5-хэш Gravatar
    • Электронную почту пользователя
    • Объект WP_User
    • Объект WP_Post
    • Объект WP_Comment
  • $args (array): Массив дополнительных параметр��в. По умолчанию null.

Дополнительные параметры

  • size (int): Высота и ширина аватара в пикселях. По умолчанию 96.

  • default (string): URL для изображения по умолчанию или тип изображения по умолчанию. Доступные варианты:

    • '404' (возвращает 404 вместо изображения по умолчанию)
    • 'retro' (пиксельное лицо в стиле 8-битной аркады)
    • 'robohash' (робот)
    • 'monsterid' (монстр)
    • 'wavatar' (мультяшное лицо)
    • 'identicon' (геометрический узор)
    • 'mystery' или 'blank' или другие
    • 'gravatar_default' (логотип Gravatar) - По умолчанию используется значение опции 'avatar_default', при отсутствии - 'mystery'.
  • force_default (true|false): Определяет, всегда ли показывать изображение по умолчанию. По умолчанию false.

  • rating (string): Определяет рейтинг аватаров для отображения. Доступные варианты:

    • 'G' (подходит для всех)
    • 'PG' (возможно, оскорбительно, для аудитории 13 лет и старше)
    • 'R' (предназначено для взрослых старше 17 лет)
    • 'X' (для более зрелой аудитории) - По умолчанию используется значение опции 'avatar_rating'.
  • scheme (string): URL-схема для использования. Смотрите set_url_scheme() для допустимых значений. По умолчанию null.

  • processed_args (array): После выполнения функции здесь будут обработанные параметры $args и предположение "found_avatar". Передается по ссылке. По умолчанию null.

Примеры использования

Пример 1: Получение URL-адреса аватара текущего пользователя

$url = get_avatar_url( wp_get_current_user(), array(
    'size' => 48,
    'default' => 'wavatar',
) );

// Пример результата: http://1.gravatar.com/avatar/155e695ab2251ee3c482c1e3e690683b?s=48&d=identicon&r=g

Пример 2: Отображение аватара автора текущей статьи

global $post;
$url = get_avatar_url( $post, array( 
    'size' => 24, 
    'default' => 'monsterid' 
));

$img = '';
echo $img;

// Пример результата: 

Пример 3: Проверка наличия аватара у email

Чтобы проверить, есть ли аватар у email, нужно отдельно обрабатывать URL Gravatar. Укажите в параметре default значение 404, затем получите URL и проверьте заголовки с помощью get_headers():

function has_gravatar( $email ) {
    $gravatar_url = get_avatar_url( $email, array( 'default' => '404' ) );
    $headers = @ get_headers( $gravatar_url );
    return ! preg_match('|404|', $headers[0]);
}

var_dump( has_gravatar('example@mail.com') ); // true или false

Обратите внимание, что выполнение этой функции займет от 0.1 до 1 секунды, так как это HTTP-запрос.

Пример 4: Получение URL-адреса аватара по электронной почте

$url = get_avatar_url( 'example@mail.com', array(
    'size' => 48,
    'default' => 'identicon',
));

// Пример результата: http://1.gravatar.com/avatar/4b508f04b661ba693130539bd29f5c0d?s=48&d=identicon&r=g

Изменения

Функция get_avatar_url() была представлена в версии 4.2.0.

Связанные функции

  • get_avatar(): Получить аватар пользователя.
  • get_avatar_data(): Получить данные аватара.

Заключение

Теперь вы знаете, как использовать функцию get_avatar_url() в WordPress. Эта функция поможет вам получать аватары пользователей и настраивать их внешний вид на вашем сайте.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *