Как получить ID автора комментария?
Столкнулся с такой проблемой.
Хочу, чтобы в статье у каждого комментатора возле его ника выводился его авторский ID (не самого комментария, а автора, они все зарегистрированы). Допустим, есть Олег Петрович, у него ID при регистрации выдан был 587, вот эту цифру требуется вывести.
И вторая сопутствующая проблема:
Чтобы при выводе его имени, получалась ссылка, ведущая на его профиль на сайте. Сейчас у меня сделано, что ссылка ведет на профиль и он отображается, если логин совпадает с отображаемым именем. Но если автор вместо логина выводит что-то другое, то я получаю 404 ошибку .
Получить ID комментатора можно так:
Профиль на сайте:
Можно решить так - получаем ID пользователя и через функцию get_userdata получаем логин пользователя ('user_login'). Далее формируем ссылку на профиль уже исходя из логина пользователя.
Спасибо большое, оба кода работают. Как говорится, то что доктор прописал! Ниже WP_Panda предложил другой способ вывода ID автора. Как Вы думаете, какой из этих способов предпочтительнее (скорость, безопасность)?
С точки зрения API движка мой вариант правильнее
опять же не надо всех этих прыжков , можно сделать так
Не вижу смысла вызвать дополнительные функции для получения данных, которые уже есть. Даже не смотря на то, что get_comment(), get_comment_ID() и т.д. работаеют с кэшем, все равно это лишние ресурсы на ровном месте.
Не знал, что циклы комментариев записывают комменты в глобальную переменную.
$GLOBALS['comment']
.Я бы сделал так: у вас есть цикл комментариев, в нем для каждого комментария отпределяется переменная, обычно,
$comment
, которая содержит данные комментария. В этом ответе такой переменной является$GLOBALS['comment']
. Отсюда, используйте такой код в цикле комментариев:Да, супер, то что нужно!
А вот это не то, так как выводится не логин автора комментария, а его ник (как он указал отображать его на сайте).
Большое спасибо, код абсолютно рабочий. Подскажите, в первом комментарии автор дал другой вариант решения проблемы.Как Вы думаете, какой из этих способов предпочтительнее (скорость, безопасность)?
Допустим, у вас есть цикл комментариев, в нем для каждого комментария определяется переменная, обычно,
$comment
, которая содержит данные комментария. Используйте такой код в цикле комментариев:П.С. Вариант с get_userdata() будет делать 2 дополнительных запроса к БД. Учитывая это я бы порекомендовал сделать доступность страницы профиля по ID пользователя.
Разобрался, мне нужно получить user_nicename.
Попробовал по аналогии вот так и не вышло:
user_nicename?>
Пришлось код первого комментатора чуть доработать. Сменить $username = $user_info->user_login на $username = $user_info->user_nicename и стало всё отлично, идеально
Проанализировал страницу автор.php и не понял, как она работает у меня сайте (почему принимает именно user_nicename).