Как изменить 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»

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

Ваш ответ

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