Отображение количества просмотров поста в WordPress по данным Yandex.metrika

Вместо того чтобы создавать свою систему статистики для блога, почему бы не использовать уже готовую — например Yandex.metrika? Тем более что Yandex предоставляет свой API для доступа к статистике. Ниже приведен способ извлечения с Yandex.metrika и отображения количества просмотров для конкретного поста.

Первый шаг — регистрация приложения для доступа к статистике. Для этого авторизуемся в своем аккаунте метрики. Затем переходим по ссылке:
https://oauth.yandex.ru/client/new
И регистрируем приложение как указано на скриншоте.

yandex metrika

Второй шаг — узнаем ID своего приложения. Для этого идем сюда:
https://oauth.yandex.ru/client/my
Кликаем на названии своего приложения и копируем куда нибудь его ID.

Третий шаг — нужно получить токен для доступа к системе. Для этого выполняем следующий запрос, подставив ID приложения полученный на предыдущем шаге:

https://oauth.yandex.ru/authorize?response_type=token&client_id=[подставляем ID приложения]

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

http://api-metrika.yandex.ru/stat/content/popular?id=[номер счетчика метрики]&date1=[дата начала ГГГГММДД]&date2=[дата конца ГГГГММДД]&oauth_token=[токен]

Если вы увидите xml-файл с данными статистики, то все нормально.

Четвертый шаг — нужно добавить скрипт в WordPress. Создаем в корне сайта файл yml.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
// НАСТРОЙКИ
$startDate = ""; // дата с которой считать статистику в формате ГГГГММДД
$yandexMetrikaCounterID = ""; // № счетчика Yandex.metrika
$yandexMetrikaToken = ""; // токен
 
// инициализация
$ymDateLoad = 0;
 
// если xml-фаил метрики есть
if (file_exists($_SERVER['DOCUMENT_ROOT'].'/upload/ym.xml')) {
	$ymData = simplexml_load_file($_SERVER['DOCUMENT_ROOT'].'/upload/ym.xml');
	$ymDateLoad = $ymData->date2;
}
 
// если фаила метрики нет или он устарел
if ($ymDateLoad != date('Ymd')) {
	// создание нового cURL ресурса
	$ch = curl_init();
 
	// установка URL и других необходимых параметров
	curl_setopt($ch, CURLOPT_URL, "http://api-metrika.yandex.ru/stat/content/popular?id=".$yandexMetrikaCounterID."&date1=".$startDate."&date2=".date("Ymd")."&oauth_token=".$yandexMetrikaToken);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_HEADER, 0);
 
	// загрузка страницы
	$ymXml = curl_exec($ch);
 
	// завершение сеанса и освобождение ресурсов
	curl_close($ch);
 
	// обработка
	$ymXml = str_replace(array('<![CDATA[', ']]>', str_replace('www.', '', 'http://'.$_SERVER['HTTP_HOST'])), array('', '', ''), $ymXml);
 
	// запись в фаил
	$handle = fopen($_SERVER['DOCUMENT_ROOT']."/upload/ym.xml", "w");
	fwrite($handle, $ymXml);
	fclose($handle);
 
	// объект SimpleXML
	$ymData = simplexml_load_string($ymXml);
	$ymDateLoad = $ymData->date2;
}
 
if ($ymDateLoad) {
	// uri
	$uri = $_SERVER['REQUEST_URI'];
 
	// вывод
	foreach ($ymData->data->row as $row) {
		if ($uri!=$row->url) continue;
		echo $row->page_views." просмотров";
	}
}
?>

В самом начале кода в разделе настроек присваиваем значения 3-ём переменным. $startDate — дата начала статистики в формате ГГГГММДД (например 20130101). Логично поставить дату установки счетчика метрики на блоге. $yandexMetrikaCounterID — подставляем номер счетчика Yandex.metrika. Найти его можно здесь:

yandex metrika

$yandexMetrikaToken — сюда подставляем токен полученный на 3-ем шаге.

Пятый шаг — создаем папку для файлов кеша. Работать и без этого будет, конечно, но тогда каждый раз при отображении поста будет тратится лишнее время на подгрузку статистики с метрики. Итак, создаем в корне сайта папку upload и присваиваем ей права 777. Например в FileZilla это делается так:

yandex metrika

Шестой шаг — добавляем отображение количества просмотров в шаблон поста. В панели управления WordPress идем в Внешний вид -> Редактор и выбираем шаблон content-single.php. Вставляем следующий код:

<div><?php require_once($_SERVER['DOCUMENT_ROOT']."/ymc.php"); ?></div>

например, после заголовка поста, то есть после следующего кода:

<h1><?php the_title(); ?></h1>

Так же можно настроить стили, добавив в файл style.css, например, следующее:

.ymc {color:#218f48; font-weight:bold;}

В результате работы скрипта получим вот это:

yandex metrika


Так же интересно…
Потолок, а так же его правильное освещение, к примеру, с использованием люстры для спальни — может полностью изменить интерьер любого помещения, будь то офис или жилая комната.


Подключение аватара в WordPress через Gravatar

Сегодня мы рассмотрим как добавить свой аватар для комментариев в своем блоге на WordPress. А заодно он будет отображаться и при комментировании других блогов (если вы укажете свой E-mail). Для этого воспользуемся сервисом Gravatar.
Сервис Gravatar
Кликаем кнопку «Create Your Own Gravatar» и попадаем на страницу ввода E-mail, к которому и будет привязан будущий аватар, а также имени пользователя и пароля. Адрес электронной почты нужно ввести именно тот, который указан у вас в настройках блога (в панели управления WordPress раздел «Параметры» -> «Общие»).
Регистрация на Gravatar
Далее нужно подтвердить введенные данные и исправить то, что не понравилось сервису (например если указанное имя пользователя уже занято). На последнюю строку, где нужно ввести адрес блога на wordpress.com, можно не обращать внимание. Блог там создавать не обязательно, но указанное имя блога должно быть уникальным.
Подтверждение регистрации на Gavatar
Затем подтверждаем E-mail.
Подтверждение E-mail на Gravatar
Заходим в свою электронную почту, которую указали ранее и кликаем на ссылку для подтверждения. Попадаем на указанную ниже страницу и кликаем на свой E-mail на синем фоне.
Управление аккаунтом Gravatar
На этом шаге можно добавить аватар из любого источника — будь то свой компьютер, Internet, ранее загруженные картинки или веб-камера.
Выбор источника для аватара
Далее нам предлагается обрезать выбранное изображение, если необходимо.
Обрезка аватара
И в заключение выбираем рейтинг для данного изображения. Если не знаете что это, просто выберите первый вариант (G). Объяснение рейтингов можно найти на последнем скриншоте в этом посте, где показана панель управления блогом на WordPress.
Выбор рейтинга аватара
В итоге видим на экране что-то наподобие этого.
Аватар добавлен
Теперь можно выходить из сервиса Gavatar, там все сделано. Теперь нужно убедиться что в настройках WordPress настроено отображение аватаров. Для этого заходим в панели управления своим блогом в раздел «Параметры» -> «Обсуждение». Ставим галочку «Показывать аватары». Флаг «Аватар по умолчанию» можно поставить в положение «Логотип Gravatar». А можно выбрать и любой автоматический аватар, например как указано на скриншоте ниже — аватар привязанный к E-mail в сервисе Gravatar все равно будет отображаться.
Настройка аватаров в WordPress

Переезд блога с Blogger на WordPress

Блоггер довольно практичная платформа, для начала. Удобная статистика, бесплатный и быстрый хостинг. Но наступает момент, когда уже не хватает встроенных функций. Так же хочется чтобы все файлы, в том числе картинки, были на одном домене. Конечно же свой хостинг и платформа дают большую гибкость. Итак, решение принято — переезжаем на WordPress — очень популярную платформу для блога с массой доступных плагинов и надстроек.
Хочу поделиться своим опытом переезда, может кому пригодится. Стоит заметить что способов переноса постов несколько, но я упомяну тот, которым сам воспользовался. К моменту переезда у блога уже был свой домен. О том как сделать этот шаг, смотрите пост о подключении персонального домена к Blogger. Так что в этой инструкции подразумевается, что этот вопрос решен.

Приступим:

  1. Экспортируем записи из Blogger (больше там вообще ничего менять не надо, даже настройки переадресации на домен). Старый блог не нужно удалять, он не помешает, так как после всех действий виден не будет.
    экспорт записей и комментариев с  blogger
  2. Конвертируем полученный файл с записями на http://blogger2wordpress.appspot.com/
  3. Покупаем хостинг или используем бесплатный с PHP и MySQL
  4. Устанавливаем на нем WordPress
  5. В WP устанавливаем плагин WordPress Importer и импортируем записи. В версии WordPress 3.5.1, например, этот плагин уже есть в меню Инструменты->Импорт
    установка плагина WordPress для импорта записей
    При этом способе комментарии теряют аватары и вложенность (если это критично, надо искать другой способ импорта).
  6. Настраиваем тему, виджеты и прочее. Желательно перезалить все картинки в постах, чтобы не шли ссылки на сервера Google. Незачем оставлять за собой хвосты. Я так же отредактировал все посты в которых отображался код, используя плагин WP-Syntax. В отображаемом коде для корректного отображения пришлось заменить «<» и «>» на «&lt;» и «&gt;»
  7. Назначаем записям метки и рубрики, так как опять же метки с Blogger при этом способе теряются.
  8. Вставляем в .htaccess строки для тех страниц, для которых хотим сохранить вес (так же чтобы записи просто не потерялись, когда на них будут ссылатся по старому адресу). Примеры:
    1
    2
    
    Redirect 301 /2011_08_01_archive.html http://www.ваш_домен.ru/2011/08/
    Redirect 301 [старая ссылка без домена] [новая ссылка с http и именем домена]
  9. Создаем на хостинге SOA-запись для приема домена (на некоторых хостингах этот шаг делается после прописывания DNS и вступления изменений в силу — в этом случае шаги 9 и 10 меняются местами)
  10. Ну и наконец, когда новый блог готов, в панели регистратора доменов прописываем новые DNS, старые CNAME-записи удаляем (которые вводили для подключения домена к Blogger). Ждем около суток (у меня даже меньше, несмотря на то что хостинг в США)

Вот пожалуй и все! Да, кстати, если кто-то зайдет на страницу старого блога — того что был на блоггере без домена — увитит такую страницу:
страница перенаправления с blogger