Как отобразить Gravatar для email-адреса пользователя в WordPress

Gravatar упрощают работу с аватарами. Многие сайты на WordPress используют граватары в комментариях для того, чтобы выделить каждого автора его собственным изображением. Да, в основном используются в комментариях, однако вы можете совершенно спокойно использовать граватары везде, где захотите. Например, в блоке информации об авторе, в сайдбаре или на странице «Обо мне». В этой статье мы расскажем вам как отобразить Gravatar из email пользователя в WordPress

gravatar[1]

Note: Our example was done for a membership site. So we are grabbing the email address by pulling logged in user’s information. However, the technique of displaying gravatar from email address stays the same.

Выводим Gravatar в файлах шаблонов WordPress

Прежде всего, мы покажем как отобразить граватар в файлах шаблона, используя простую функцию. Добавьте следующий код в файл functions.php вашей темы или в плагин для сайта WordPress:

function devise_display_gravatar() { 
	global $current_user;
	get_currentuserinfo();
	// Получаем Email адрес пользователя
	$getuseremail = $current_user->user_email;
	// Конвертируем email в хеш md5 и задаем размер картинки в 32px
	$usergravatar = 'http://www.gravatar.com/avatar/' . md5($getuseremail) . '?s=32';
	echo '<img src="' . $usergravatar . '" class="devise_gravatar" />';
} 

Для того, чтобы отобразить граватар в файлах шаблона, используйте следующий код:

<?php devise_display_gravatar(); ?>

Выводим Gravatar в записях, страницах и виджетах WordPress

Теперь давайте предположим, что у вас есть email адреса пользователя и разрешение на использование на вашем сайте. И они не являются зарегистрированными пользователями на вашем сайте. Или то, что вы хотите отобразить граватары определенных пользователей в записи, на странице или виджете. Для решения такой задачи добавьте следующий код в файл functions.php вашей темы или в плагин для сайта для WordPress:

function devise_display_gravatar($atts) { 
extract( shortcode_atts( array(
		'devise_user_email' => '',
	), $atts ) );
if ($devise_user_email == '') { 
	global $current_user;
	get_currentuserinfo();
	$getuseremail = $current_user->user_email;
} else { 
        $getuseremail = $devise_user_email;
}
	$usergravatar = 'http://www.gravatar.com/avatar/' . md5($getuseremail) . '?s=32';

	echo '<img src="' . $usergravatar . '" />';
} 

add_shortcode('devise_gravatar', 'devise_display_gravatar');

В вышеприведенном коде мы изменили оригинальную функцию devise_display_avatar и создали для нее шорткод. Он воспринимает один аргумент — devise_user_email. Если вы укажете е-мейл адрес в виде аргумента для шорткода, тогда он отобразит граватар для указанного адреса, а не для текущего залогиненого в систему пользователя. Этот шорткод может использоваться как в записях, так и на страницах, а также виджетах. Для того, чтобы им воспользоваться, нужно использовать:

[devise_gravatar]

Для отображения граватара для определенного адреса следует взять:

[devise_gravatar devise_user_email="john.smith@example.com"]

Также есть возможность добавить CSS, дописав класс .devise_gravatar в вашу таблицу стилей вот таким образом:

.devise_gravatar { 
padding: 3px;
margin: 3px;
background:#FFFFFF; 
border:2px solid #eee; 
} 

Надеемся, что статья была вам полезна в выводе Gravatar из email пользователя в WordPress. Вопросы — в комментариях :)

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top