Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Не получается вывести аватар в произвольном месте.
9ответ(ов) в теме
Deminius22
не в сети 4 месяца
На сайте с 04.08.2017
Участник
Тем 9
Сообщения 22
1
16:52

Здравствуйте.

Подскажите пожалуйста если сможете, я вывожу аватар у себя на сайте с помощью стандартного вывода WordPress’а:

<?php
$current_user = wp_get_current_user();
echo get_avatar( $current_user, 65, '', '', array('extra_attr'=>'style="border-radius: 50%;"') );
?>

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

В чем собственно вопрос, когда пользователь устанавливает аватар через профиль своего кабинета(идет использование плагина Wp-recall), то при выводе его аватара в другом месте используя выше перечисленный код, выводится картинка по умолчанию(WordPress), так будто бы аватар не установлен, хотя и в профиле пользователся и в подписках и т.п. он виден и нормально отображается.

Заранее спасибо за ответ.

0
Вова (Otshelnik-Fm)
не в сети 27 минут
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
17:02

Здравствуйте.

Тему перенес в кастомизации.

get_avatar должен отрабатывать. Почему же мы видим в комментариях наши аватарки? Потому что эта функция работает.

Возможно когда вы вызываете фильтр еще не отработал. Пробуйте позже выполнять вызов

0
Deminius22
не в сети 4 месяца
На сайте с 04.08.2017
Участник
Тем 9
Сообщения 22
3
17:29

То, что функция работает, это безусловно так, но почему она у меня не выводит аватары загруженные через профиль вот это вопрос. Может конечно и что-то на сайте у меня конфликтовать, но я не знаю…

Если можно чуть поподробней об:

Пробуйте позже выполнять вызов?

Примерно, что это значит.

0
Вова (Otshelnik-Fm)
не в сети 27 минут
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
4
17:42

Это значит что в момент когда вы обращаетесь к функции еще не собрана она или переменные что в нее передаете. Могу лишь предполагать - т.к. вы нам не показали свой код целиком

Я тупо вставил код

<?php echo get_avatar( 1 ); ?>
в single.php файл

Вы не можете просматривать опубликованные ссылки

- и ава моя локальная вывелась.

Значит вы что-то неверно делаете

Примерно, что это значит

Вы не можете просматривать опубликованные ссылки
0
Deminius22
не в сети 4 месяца
На сайте с 04.08.2017
Участник
Тем 9
Сообщения 22
5
18:58

Спасибо за разъяснения.

Буду думать…

Мне кажется ошибка где-то в определении авторизированного вошедшего пользователя wp_get_current_user(), но это не точно.

0
Вова (Otshelnik-Fm)
не в сети 27 минут
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
6
19:03

А в чем проблема распечатать и посмотреть что вы передаете в функцию? Об этом и написал:

Otshelnik-Fm сказал(а)
или переменные что в нее передаете

Дебаг - наше всё. Ну и для чистоты эксперимента вы всегда можете в функцию передать число - id юзера у кого стоит локальная аватарка - как я в примере

0
Deminius22
не в сети 4 месяца
На сайте с 04.08.2017
Участник
Тем 9
Сообщения 22
7
19:39

Все вы правильно говорите, действительно, нужно передавать конкретный ID вошедшего пользователя, а у меня как-то не знаю даже, что передавало, но работало, но неправильно видимо. Могли бы подсказать для таких тупых как я, что нужно не просто передавать $current_user, а $current_user->ID.

<?php
$current_user = wp_get_current_user();
echo get_avatar( $current_user->ID, 65, '', '', array('extra_attr'=>'style="border-radius: 50%;"') );
?>

В общем после замены $current_user на $current_user->ID стало отображать и работать правильно, хотя тогда тоже работало, но с багом. Не мытьём так катаньем.
Все равно спасибо за наводку!

0
Вова (Otshelnik-Fm)
не в сети 27 минут
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
8
19:59

можно было бы просто определить глобальную переменную

global $user_ID;

и ее передать 1м аргументом в функцию

1
Deminius22
не в сети 4 месяца
На сайте с 04.08.2017
Участник
Тем 9
Сообщения 22
9
20:04

Спасибо, но теперь трогать не буду, работает и ладно 🙂

1
Тема закрыта. Публикация новых сообщений запрещена.