|
17 апреля 2008
|
Последние изменения в конфигурации WordPress на этом сайте были связаны с устранением необходимости в некоторых второстепенных плагинах. В первую очередь это относилось к различным расширениям функциональности темы. Например, ради того, чтобы заменить URL стандартных RSS-фидов на линки Фидбёрнера или вставить в страницы код Google Analytics, вовсе не обязательно ставить специальный плагин.
Конечно, управление через административную панель более удобно, чем правка кода вручную, но каждый такой плагин увеличивает объем исполняемого PHP кода при любом обращении к сайту. Поэтому было принято стратегическое решение — если плагин можно не ставить, обойдясь функциональностью стандартного API WordPress, такой плагин лучше не ставить.
Последним из устраненных плагинов был Easy Gravatar, добавляющий к комментариям аватары с одноименного сервиса. В этой заметке расскажу, в двух словах, как добавить в тему для WordPress 2.5 такие аватары самостоятельно.
/2008/04/comments.png)
Я не случайно упомянул номер версии. До выхода последнего на сегодняшний день релиза, стандартных функций для работы с Gravatar не было. А само их появление совсем не удивительно, учитывая, что WordPress и Gravatar принадлежат одному и тому же Automattic.
Принцип действия Gravatar очень прост. Для того, чтобы получить с их сервера юзерпик комментатора, необходимо разместить в коде страницы обычный элемент <img>, указав в нем стандартный URL с набором GET-параметров. В общем виде URL граватара выглядит так:
http://www.gravatar.com/avatar.php?gravatar_id=...&rating=R
&size=40&default=...&border=FF0000
Значение параметров:
gravatar_id — единственный параметр, являющийся обязательным. Это идентификатор пользователя в базе данных Gravatar, основанный на адресе электронной почты. Учитывая, что при комментировании, указание email как правило является обязательным, адрес становится доступным в ходе генерирования страницы. А для того, чтобы его не светить в открытом доступе, в списке параметров указывается не сам email, а его MD5-хэш.
rating — ESRB-рейтинг, дань политкорректности. Значение этого параметра определит «рамки приличия» для аватаров, которые можно демонстрировать на страницах вашего сайта (возможные варианты — G/PG/R/X; регистр не имеет значения).
Скажем, если указать G, никто из комментаторов теоретически не сможет раскрыть таким странным образом тему сисек использовать юзерпики нецензурного содержания. Но в полной мере полагаться на этот параметр не стоит, т.к. никакой модерации, на сколько мне известно, на Gravatar нет и пользователи сами выставляют своим аватарам рейтинг.
border — если этому параметру задать цветовой код в формате RGB (без решетки), аватары будут обрамлены однопиксельной рамкой соответствующего цвета. Неплохо, что эта возможность присутствует, но она опять же не особенно полезна, т.к. примерно того же эффекта можно добиться с помощью CSS.
size — а вот это уже более нужный параметр, хотя тоже необязательный для указания в URL. Он определяет размер стороны юзерпика в пикселях (картинки всегда квадратные, поэтому достаточно одной величины). Возможные значение — от 1 (что забавно), до 80. Если размер не указать вообще, он останется оригинальным. Т.е. тем, в котором пользователь загрузил свой аватар на сервер. В противном случае, юзерпик будет масштабирован.
Кстати, для масштабирования графики Gravatar использует биквадратичный алгоритм, благодаря чему уменьшенные копии выглядят достаточно «гладко».
default — полный URL картинки, которая будет отображена вместо аватара, если пользователь отсутствует или рейтинг его аватара превышает указанное значение. Если параметр не задать, будет использован стандартный вариант с логотипом Gravatar.
Для упрощения взаимодействия с сервисом, в API WordPress появилась функция get_avatar(), преобразующая набор своих параметров в сформированный элемент <img>.
Параметры следующие:
id_or_email — идентификатор пользователя в базе WP, либо его email. Так же годится итерируемый объект из цикла, выводящего на страницу комментарии, что весьма удобно, хотя, вероятно, немного менее эффективно прямого указания email.
size — размер аватара.
default — полный URL аватара, используемого по-умолчанию.
В официальной документации на Кодексе рекомендуют использовать такую конструкцию для обеспечения обратной совместимости:
if (function_exists('get_avatar')) {
echo get_avatar($email);
} else {
//alternate gravatar code for < 2.5
$grav_url = "http://www.gravatar.com/avatar.php?gravatar_id=
".md5($email)."&default=".urlencode($default).
"&size=".$size;
echo "<img src='$grav_url'/>";
}
На мой взгляд, это оправдано только при создании темы для общего использования. Когда есть вероятность применения на старых версиях WP. Если же даунгрейда с 2.5 не предполагается, вполне можно ограничиться прямым вызовом get_avatar(). Чем меньше исполняемого PHP кода — тем лучше.
Ссылки по теме
|