WordPress — как мне получить get_avatar из строки электронной почты PHP

Я новичок в PHP, как мне извлечь значение электронной почты из этой строки, чтобы получить или повторить аватар пользователя по электронной почте.

Я пробовал это, и он, кажется, не работает .. из-за того, что он не работает, он отображает электронную почту и аватар по умолчанию, который я хочу, чтобы скрипт использовал электронную почту, чтобы получить аватар.

<?php
$email = Sabai::_h($entity->getAuthor()->email);
echo get_avatar( $email, 32 );
?>

Какие-либо предложения?

1

Решение

Почему бы просто не заменить все это простыми функциями WordPress?

<?php echo get_avatar( get_the_author_meta( 'ID' ), 32 ); ?>
0

Другие решения

В актуальном get_avatar() Функция применяет get_avatar фильтр-хук в WordPress

return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt);

Я думаю, что это был бы правильный способ подключиться к этому фильтру:

 function mytheme_get_avatar( $avatar, $id_or_email, $size ) {
$avatar = '<img src="<' . get_template_directory_uri() . '/images/authors/' . $id_or_email . '.jpg" alt="' . get_the_author() . '" width="' . $size . 'px" height="' . $size . 'px" />';
return $avatar;
}
add_filter( 'get_avatar', 'mytheme_get_avatar', 10, 32 );

Таким образом, вы также можете пойти по этому пути, чтобы решить вашу проблему. Удачи!

0

Кажется, вы возвращаете объект или массив в $email переменная или может быть пустым.
убедитесь, что вы получаете правильный адрес электронной почты, чтобы он показывал avatar изображение, если аккаунт зарегистрирован Gravatar иначе это будет отображаться с no-image,

Попробуйте вывести переменную $ по электронной почте сразу после

$email = Sabai::_h($entity->getAuthor()->email);
var_dump($email); // To check it is array or object.

echo get_avatar( $email, 32 );
-1