mojwp.ru
Назад

Хаки WordPress - делаем стилизованный аватар для Человека-загадка

Опубликовано: 24.02.2012
24
908

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

Все дело в сервисе Gravatar.com, который позволяет прикрепить к своему E-mail персональную картинку. У тех же, кто не зарегистрирован на данном сервисе, на Вашем блоге выводится картинка по-умолчанию, которую мы сегодня и будем менять на произвольную, выбранную Вами лично.

Показываю для наглядности, о чем идет речь:

сделать аватар по умолчанию

Если Вы до сих пор не зарегистрированы на Gravatar.com, либо не знаете как и что там делать, то читайте статью Gravatar — аватарка для каждого комментатора, после чего все вопросы отпадут.

Первым идет аватар человека со стрелкой, т.к. он именно такую картинку поставил на сервисе Gravatar.com. Далее мое лицо, которое я так же привязал к почтовому ящику на том же сервисе. А вот третий аватар, на котором надпись "У меня нет своего Gravatar. Я бедный(" - это уже мое "художество"))).

По умолчанию на всех блогах стоит Человек-загадка. Мы можем выбрать и другой рисунок из предложенных, но они попадаются на большом количестве блогов, что мне не понравилось. Именно поэтому в стандартный список мы сегодня добавим свою картинку.

Делаем свой аватар для комментаторов

Перечисляю список того, что нам понадобится:

  1. Графический редактор (Photoshop, Paint или кто чем пользуется).
  2. Голова, руки и "пятая точка" на стуле.

Для начала делаем заготовку размером 64*64 пикселя с произвольным фоном и текстом/изображением. Дело Ваше, что будет на аватарке комментатора, который не зарегистрирован на граватаре.

[infob]Прежде всего, перед тем, как приступить к практической части, не забывайте делать резервную копию файлов с которыми будете работать.[/infob]

После того, как создали заготовку, нам необходимо ее загрузить на сервер в папку images, которую найдем в шаблоне блога. Если брать общую теорию, применимую в 98% случаев, то путь будет таким:

site.ru/wp-content/themes/название_вашего_шаблона/images/

Если папки images там не обнаружили, то с легкостью можно ее создать и уже потом поместить созданный аватар в нее.

Следующим шагом будет вставка небольшого кода (так называемый "хак"), который позволит нам отображать данную аватарку в панели администратора, чтобы мы могли ее выбрать в качестве дефолтной (по умолчанию). Для этого, все в той же папке с шаблоном Вашего блога, ищем файл functions.php, открываем при помощи программы Notepad++ и вставляем следующий код (если такого файла нет, то чуть ниже я напишу как его создать):

add_filter( 'avatar_defaults', 'newgravatar' );
function newgravatar ($avatar_defaults) {
$myavatar = get_bloginfo('template_directory') . '/images/gravatar-mojwp.gif';
$avatar_defaults[$myavatar] = "Аватар для неимущих";
return $avatar_defaults;
}

Поясняю, что здесь в коде нужно изменить конкретно в Вашем случае:

  • /gravatar-mojwp.gif - здесь указываете название Вашей картинки. Старайтесь все названия картинок, которые загружаете на блог, делать на английском языке. Это будет Вам только в плюс.
  • Аватар для неимущих - а это произвольное название, которое и будет отображать в админке сайта в соответствующем разделе (смотрим картинку ниже).

[infob]Помещать данный код нужно до закрывающего ?> (в самом конце). Просто сразу перед этим символом, на строку выше, вставьте предложенный код.[/infob]

Сохранили файл functions.php и закачиваем назад на хостинг. После этого идем в админку сайта Параметры (у кого-то Настройки) ► Настройки обсуждения и прокручиваем страницу в самый низ, где видим следующую картину:

картинка для коментатора

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

Если у Вас на сайте посетители могут регистрироваться, то полезным будет плагин Simple Local Avatars — как пользователю установить собственный аватар, при помощи которого зарегистрированный пользователь через админку сайта поставит свой личный аватар и ему не обязательно иметь аккаунт на Gravatar.

Как создать файл functions.php

При помощи текстового редактора Notepad++ (можно и другого, но я СОВЕТУЮ его) создаем новый файл и помещаем в него следующее:

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

Поделитесь своими аватарками

Чтобы комментарий прошел автоматическую модерацию, перед ссылкой на свой блог в теле комментария поставьте нижнее подчеркивание, т.е. будет выглядеть так: _http://site.ru/post.html

Автор:
Виталий
Поделиться
Похожие записи
Черкани пару строк
  • Максим
    Опубликовано: 21.02.2013 Ответить на сообщение

    Здравствуйте!!!
    У меня не сработал этот код к сожалению.

    • Виталий
      Опубликовано: 21.02.2013 Ответить на сообщение

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

  • Максим
    Опубликовано: 21.02.2013 Ответить на сообщение

    Последовательность соблюдена. Может от версии WP зависит???

    • Виталий
      Опубликовано: 21.02.2013 Ответить на сообщение

      возможно. Статья год назад писалась. Проверю при случае.

  • Максим
    Опубликовано: 21.02.2013 Ответить на сообщение

    Вот такого вида код сработал на моём сайте

    add_filter( 'avatar_defaults', 'newgravatar' );
    function newgravatar ($avatar_defaults) {
    $myavatar = get_bloginfo('template_directory') . '/images/gravatar-mojwp.gif';
    $avatar_defaults[$myavatar] = "Аватар для неимущих";
    return $avatar_defaults;
    }
    • Виталий
      Опубликовано: 21.02.2013 Ответить на сообщение

      Спасибо большое за настойчивость. Я действительно забыл указать filter в коде статьи)

  • Максим
    Опубликовано: 21.02.2013 Ответить на сообщение

    Возник ещё один вопрос. А как при комментировании пользователи добавляют свою аватарку??? И как мне админу добавить свою аватарку???

    • Виталий
      Опубликовано: 21.02.2013 Ответить на сообщение

      пользователи через свою почту, которую привязывают к gravatar.com (на блоге есть статью по этому вопросу).
      Админ аналогично. либо плагином, который предложен в данной статье.

  • Татьяна
    Опубликовано: 13.03.2013 Ответить на сообщение

    Хм 🙂 Вот только-только обратила внимание, что "неимущие" у вас в блоге имеют красивый и достойный аватар, а не убогого чудо-монстрика как у меня, к примеру... Обязательно воспользуюсь, ужасно понравилось 🙂
    А у вас ведь вроде другой дизайн сайта был раньше...Темный... или черный... Или я ошибаюсь?

    • Виталий
      Опубликовано: 13.03.2013 Ответить на сообщение

      1. аватар "для неимущих" сменил))
      2. дизайн новый сделал месяца полтора назад

      • Татьяна
        Опубликовано: 23.03.2013 Ответить на сообщение

        Виталий, здравствуйте. У меня не было в файле functions.php в самом конце знака <? Я добавила код и все сломалось... Сейчас восстанавливаю. Нужно было самой этот ? дописать? Чет я уже боюсь второй раз пробовать 🙂

        • Виталий
          Опубликовано: 24.03.2013 Ответить на сообщение

          Добрый. Он у вас должен был быть. Может стоял чуть выше. Теперь вы добавили второй, вот и "сломалось".
          Гляньте внимательно.

          • Татьяна
            Опубликовано: 24.03.2013 Ответить на сообщение

            Нет его не было и я не дописывала. Странно. Может это вообще какой-то другой functions.php... путь сто раз проверила. Причем, если через админку сайта, то там все как надо и вопросы стоят. А через блокнот такое ощущение что это вообще другой файл. Там 3800 с лишним строк. На другом блоге посмотрела (у него скрин и всего 490 строк с небольшим. Это не показатель, конечно, но все равно... такая разница) Хочу граватар:(((

  • Татьяна
    Опубликовано: 24.03.2013 Ответить на сообщение

    Нашла я кажется этот нужный functions.php Проверьте, плиз... Вот такой путь у меня - pablic_html-адрес сайта-wp-content-themes-название темы-functions.php

    Правильно? А вчера я исправляла здесь 🙂
    pablic_html-адрес сайта-wp-includes-functions.php 🙂

    • Татьяна
      Опубликовано: 24.03.2013 Ответить на сообщение

      Вообще ничего не понимаю 🙁 И так тоже не то. Решила - пусть мои будут с обычными страшными граватарами 🙁

    • Виталий
      Опубликовано: 24.03.2013 Ответить на сообщение

      В статье же написано, что файл functions.php будет лежать в папке с шаблоном.
      Все работает, в чем можете убедиться, посмотрев на аватарки не залогинившихся. Других действий, кроме описанных в статье, не принималось.

      • Татьяна
        Опубликовано: 24.03.2013 Ответить на сообщение

        У меня получилось!!! Только я через админку в этот раз. Через Notepad+ почему-то не получалось. Ну хоть получилось 🙂 Класс! Теперь нужно размер найти как увеличить 🙂

  • Елена
    Опубликовано: 20.07.2013 Ответить на сообщение

    Спасибо, Виталий! Очень интересный и полезный пост. Впрочем, как и всегда! Казалось бы, мелочь, а аватар "человека-загадки" мне никогда не нравился. Но я даже не представляла, что это можно исправить.
    Не было времени долго подбирать картинку - уж очень хотелось испытать хак в действии. Все получилось!!! Солнышко в комментах - моих рук дело: _http://hobbymama.ru/polet-fantazii-monotipiya-dlya-detey.html

  • Антон Куклинский
    Опубликовано: 23.08.2013 Ответить на сообщение

    Виталий, приветствую!
    На моем блоге по какой-то причине родные шаблоны картинок авторов без граватара не показывались. Вместо них показываются пустые квадраты. Думал, что установка своей картинки изменит ситуацию. Сделал все как положено, но все равно остался пустой квадрат без картинки. Хотя в списке последних комментаторов в сайдбаре моя картинка показывается нормально.
    Не подскажешь, в чем может быть дело? Может где-то код нужно подкорректировать, чтобы картинки авторов без граватара нормально отображались?
    Буду очень благодарен за помощь!

    • Виталий
      Опубликовано: 23.08.2013 Ответить на сообщение

      Честно говоря, впервые с таким сталкиваюсь.
      Если на хостинге есть функция, то включите журнал ошибок PHP. Где-то плохо отрабатывает код. Это все что могу посоветовать на данный момент, не видя код.

  • Максим
    Опубликовано: 09.01.2014 Ответить на сообщение

    Спасибо за статью! Сегодня посетил кучу сайтов, что бы найти предложенную вами информацию. Буду осваивать ваш Хак.

  • Надежда
    Опубликовано: 18.02.2014 Ответить на сообщение

    Спасибо! У меня все получилось. Но возникло 2 затруднения:
    1. В комментариях под стьями аватарки "неимущих" поменялись, но ссылка все равно идет через сервис граватаров - если посмтореть код эелмента. А я именно от обращения к этому сайту и хотела избиваться - для разгрузки сайта... Не пянятно, почему к картинки из папки шаблона идет обращение через ж...? Выглядит ссылка вот так: http://0.gravatar.com/avatar/8f022e23e0dcdf5f9c94dffd89cb9600?s=32&d=http%3A%2F%2Fmyempeiria.ru%2Fwp-content%2Fthemes%2FNicePen%2Fimages%2Fgravatar.png%3Fs%3D32&r=G. Буду очень благодарна, если подскажете, как сделать ее напрямую!
    2. В ТОПе комментаторов аватарки меняться не хотят. Возможно, потому что у меня плагин стоит Top Commentators Widget, и еще в него нужно что-то прописывать?

    • Виталий
      Опубликовано: 19.02.2014 Ответить на сообщение

      Добрый.
      1. Не подскажу альтернативное решение. Тут идет подмена в ссылке, чтобы все работало.
      2. К сожалению плагин не использую, поэтому по его настройкам не знаю. Нужно видеть ситуацию. К тому же данный ТОП легко выводится без плагина.

      • Надежда
        Опубликовано: 20.02.2014 Ответить на сообщение

        1. Жаль... Может, Вы тогда знаете, как эти граватары кэшировать? Пейдж Спид ругается, что у них кэш 5 минут - видимо это по умолчанию там...
        2. От плагина уже избавилась, спасибо 🙂 Теперь в сайдбаре красуются мои аватарки, на которые, кстати, Пейдж Спид не обращает внимания, в отличие от тех, что в статьях...

Имя
Укажите своё имя и фамилию
E-mail
Без СПАМа, обещаем
Текст сообщения
Отправляя данную форму, вы соглашаетесь с политикой конфиденциальности и правилами нашего сайта.