Как изменить html вывода аватара пользователя сайта вордпресс?

Решено

Мне нужно изменить html который выводится с помощью функции get_avatar(). Мне нужно изменить адрес изображения. Данная функция много где на сайте используется поэтому хотелось бы написать одну функцию для все аватарок.

Добавить Комментарий
    Ответ

    Вот пример решения вашей задачи:

     // Apply filter
     add_filter( 'get_avatar' , 'my_custom_avatar' , 1 , 5 );
    function my_custom_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
     $user = false;
    if ( is_numeric( $id_or_email ) ) {
    $id = (int) $id_or_email;
     $user = get_user_by( 'id' , $id );
    } elseif ( is_object( $id_or_email ) ) {
    if ( ! empty( $id_or_email->user_id ) ) {
     $id = (int) $id_or_email->user_id;
     $user = get_user_by( 'id' , $id );
     }
    } else {
     $user = get_user_by( 'email', $id_or_email );
     }
    if ( $user && is_object( $user ) ) {
    if ( $user->data->ID == '1' ) {
     $avatar = 'YOUR_NEW_IMAGE_URL';
     $avatar = "<img alt='{$alt}' src='{$avatar}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
     }
    }
    return $avatar;
     }
     

    Код взят прямо с кодекса вордпресс, в вашем случае можно все упростить, например:
     // Apply filter
     add_filter( 'get_avatar' , 'my_custom_avatar' );
    function my_custom_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
     if ($avatar != '') {
     $avatar = str_replace(site.ru/', 'site.ru/wp/', $avatar);
     }
     return $avatar;
     }
     

    Данный код добавит в ссылку пути к аватару каталог «/wp»

    Добавить Комментарий

    Ваш ответ

    Размещая свой ответ, вы соглашаетесь с правилами сайта.