Как изменить html вывода аватара пользователя сайта вордпресс?
Решено
Мне нужно изменить html который выводится с помощью функции get_avatar(). Мне нужно изменить адрес изображения. Данная функция много где на сайте используется поэтому хотелось бы написать одну функцию для все аватарок.
1 Ответ(ы)
Ответ
Вот пример решения вашей задачи:
// 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»