Как настроить интеграцию WordPress с сервисом Gravatar для аватаров?
Здравствуйте! Нужна помощь с настройкой интеграции WordPress с сервисом Gravatar для аватаров. Я создал блог на WordPress и хочу, чтобы аватары пользователей автоматически подтягивались из Gravatar, если у них есть аккаунт там. Но у меня не получается сделать это работающим.
Я уже пробовала добавить следующий код в файл functions.php в директории моей темы:
add_filter( 'avatar_defaults', 'mytheme_custom_gravatar' );
function mytheme_custom_gravatar ($avatar_defaults) {
$myavatar = get_stylesheet_directory_uri() . '/images/avatar.jpg';
$avatar_defaults[$myavatar] = __( 'Custom Avatar', 'mytheme' );
return $avatar_defaults;
}
И в шаблоне комментариев использовала следующий код:
<div class="comment-author">
<?php echo get_avatar( $comment, $size = '48' ); ?>
<?php printf( __( '%s <span class="says">says:</span>', 'mytheme' ), sprintf( '<cite class="fn">%s</cite>', get_comment_author_link() ) ); ?>
</div>
Однако, аватары пользователя все равно не отображаются. Что я делаю не так? Буду очень благодарна за помощь!
Ответы:
Для того чтобы настроить интеграцию WordPress с сервисом Gravatar для аватаров, вам необходимо внести некоторые изменения в ваш код.
Во-первых, вам необходимо убедиться, что у вас есть аккаунт на Gravatar с зарегистрированным email-адресом, так как Gravatar использует email-адрес пользователя для связи с его аватаром.
Во-вторых, код, который вы добавили в functions.php, отвечает только за настройку пользовательской аватарки по умолчанию. Он не отвечает за отображение аватаров из Gravatar. Для этого вам необходимо использовать функцию get_avatar(), как вы правильно указали в шаблоне комментариев.
Однако, в вашем шаблоне комментариев есть небольшая ошибка в использовании функции get_avatar(). Вместо использования переменной $comment, вы должны использовать функцию get_comment(). Вот исправленный код:
<div class="comment-author">
<?php echo get_avatar( get_comment(), $size = '48' ); ?>
<?php printf( __( '%s <span class="says">says:</span>', 'mytheme' ), sprintf( '<cite class="fn">%s</cite>', get_comment_author_link() ) ); ?>
</div>
Теперь, когда вы исправили ошибку, аватары пользователей должны отображаться корректно, если у них есть аккаунт на Gravatar, связанный с их email-адресом.
Надеюсь, это поможет вам решить проблему. Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь задавать. Удачи вам!