В статье Аватары в WordPress я затрагивал вопрос о том, как выделить себя в толпе комментаторов. Но благодаря Сергею Никифорову с его сайтом Эффективного Саморазвития, выяснилась одна проблемка — иногда в комментариях пользователя не отображается зарегистрированный в gravatar по указанному email аватар. Вместо него отображается стандартный значок отсутствия аватара. По данному вопросу Сергей обращался даже в службу поддержки, но никто не смог ему помочь решить данный казус. Проблема меня немножко удивила — я даже не сразу понял суть проблемы. Но после ознакомления с блогом Сергея, принялся искать причины…
После недолгих разбирательств, выяснилось что в тех комментариях, в которых не отображается аватар, сколько ни подставляй другие имейлы, аватар так и не отобразится. Значит нужно смотреть эти комментарии — в них должны быть какие-то различия.
В таблице «wp_comments» было найдено поле user_id, которое указывает на id зарегистрированного пользователя. И если пользователь по какой либо причине был удален на блоге, то все его комментарии будут отображаться без аватара вне зависимости от того — есть ли аватар в системе gravatar на указанный имейл или нет. Так написано в коде отображения комментариев — если user_id не равен нулю, то ищется указанный пользователь. Если пользователь найден, то отображается аватар на тот имейл, который указан у пользователя в таблице wp_users в поле user_email.
Отсюда следующие способы решения проблемы:
1 Отредактировать код отображения комментариев. Но вариант сразу отпадает, так как после следующего обновления версии wordpress, придется снова редактировать код.
2 Добавить в систему недостающих(ранее удаленных) пользователей. К примеру, можно выполнить SQL запрос
INSERT INTO `wordpress_blog`.`wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES (NULL, 'js', 'js', 'js', '[email protected]', 'http://tithost.ru', '0000-00-00 00:00:00', '', '0', 'JS');
Вместо [email protected] нужно вставить тот емаил, который Вам необходим.
3 Обновим у всех комментариев поле user_id в ноль, если они ссылаются на несуществующего пользователя. Для этого нужно выполнить слещующий SQL запрос
UPDATE `wordpress_blog`.`wp_comments` cmn SET cmn.`user_id`=0 WHERE (SELECT count(usr.id) FROM `wordpress_blog`.`wp_users` usr WHERE usr.id=cmn.user_id)=0
Ко мне пришли по этим поисковым фразам:
- bit ly (51)
- feedproxy google com (27)
Евгений, Здравствуйте!)))
…Да, именно благодаря Вам я имею возможность любоваться стилями комментариев!)) Если бы не Вы, — до сих пор бы рвал волосы везде, где только можно, и не только свои)))) Много крови мне этот вопрос попортил…
Огромное Вам Спасибо, еще раз, за простое и эффективное решение!))
Рад был Вам помочь, Сергей.
Ага!! Я всегда знал, что истина где-то рядом!)) Попробую перестать быть безликим)) Спасибо!
Спасибо за объяснение. Надо попробовать
Перестали отражаться стандартные значки аватаров( к стати смотрю у вас тоже). Не знаю от чего, но скорее всего после обновления WP. Кто знает как исправить?
Установил плагин User-Avatar, появилась возможность закачки изображений. Однако в комментариях отображается по-прежнему Граватар. В настройках все перепробовал. А вот в код не лез. Может, там проблема?
У вас не отображаются значки аватаров в комментариях
отображаются
Здравствуйте!
Начал недавно делать сайт на WordPress. Установил последнюю версию движка с официального сайта, а также плагины Easy Gravatars и Simple Local Avatars. Плагины актививированы, в настройках обсуждения установлена галочка — «показывать аватары». Однако при просмотре комментариев в панели управления аватары отображаются, а вот на самом сайте – нет. Ни граватары, ни собственные аватары на сайте в комментариях не отображаются. В чем, по Вашему мнению, может быть причина?
Видимо отображение граватара от шаблона зависит. Такой вопрос, конечно, хорошо бы заранее предусмотреть
Та же самая проблема, что и у Вас — не отображаются стандартные значки аватаров. Решение пока не найдено.
Спасибо, попробую.