Информер курса валют ЦБ РФ   •   Магазин расширений
743 просм
7 комм
Поделиться:

Как вывести URL-адрес аватара авторизованного пользователя в WordPress?

Видел много различных плагинов, готовых шорткодов, которые выводят аватар (личное фото из профиля) в виде готового изображения.

Но бывают случаи, когда вам не нужно получать целое изображение, а лишь ссылку, которую в последующем вы обработаете нужным вам образом. Плагины не решают эту задачу, но я покажу, как можно самому без особого труда ее решить.

Для этого напишем свою маленькую функцию:

function get_url_avatar_user() {

	if(is_user_logged_in()) {
	
		global $current_user;

		get_currentuserinfo();

		$avatar = get_avatar($current_user->ID, 270);
		$avatar_arr = explode('"', $avatar);

		return $avatar_arr[1];

	}
	
}

add_shortcode("user-avatar-url", "get_url_avatar_user");

Ее вы вставляете в файл functions.php, который находится в папке вашей темы. Параметр «270» здесь – это ширина возвращаемого изображения в пикселях.

Использование (вывод URL аватара) следующее:

<?php
	
	$avatar = do_shortcode('[user-avatar-url]');
	
	echo "Ссылка на ваш аватар: ".$avatar;

?>

Этот код вы вставляете в нужное место в файлы вашей темы, по желанию – с добавлением сопутствующей информации, как в примере выше.

7
комментариев
6.05 в 21:01
Добрый день

Извиняюсь что не по теме, но не нашел где можно задать свой вопрос. Интересуют две вещи.
1) Подскажите, как сделать статус онлайн / офлайн у пользователей как на вашем сайте?
2) И очень полезная функция подписки на комментарии. Это плагин или можно кодом это сделать?

Заранее благодарю
  • 0
Андрей, здравствуйте. Какая CMS у Вашего сайта?
  • 0
6.05 в 22:26
Сайт на WordPress
  • 0
Андрей, у нас не WP.

В вашем случае (на счет подписки) посмотрите в сторону плагина Subscribe to Comments.

На счет статуса - нужно посмотреть как устроены профили на Вашем сайте.
  • 0
6.05 в 22:37
Нашел такой код. Но там ошибка, "сессия не уничтожается". https://codyshop.ru/sozdanie-indikatora-prisutstviya-polzovatelya-na-sayte/

Создаем метаполе каждому юзеру. При входе на сайт, пишем в него значение true, то есть, пользователь на сайте, а при выходе false. Для отображения индикатора получаем значения этого поля.

У вас не по такому же принципу?
  • 0
Андрей, не совсем. Сделайте другую логику на основе той статьи.

Когда человек входит на сайт (или обновляет страницу) - обновляйте время его последнего визита (в php это time()). Далее, проверяйте это время. Если прошло меньше 3 минут (например) - значит он еще на сайте, если больше - значит отошел.

По коду выйдет намного красивее и компактнее.
  • 0
6.05 в 22:46
Спасибо, попробую)
  • 0
Гостям запрещено учавствовать в обсуждениях сайта. Авторизуйтесь, чтобы иметь возможность оставить свое мнение о материале или задать вопрос.
Подняться наверх