Отображение количества просмотров поста в 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


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


Wi-Fi повторитель (репитер) из компьютера на базе Windows 7

Проблема покрытия (или не покрытия) помещения сетью Wi-Fi встречается довольно часто. Решить её можно с помощью использования более мощного сетевого оборудования, а так же с помощью Wi-Fi репитеров. Ну или обойтись проводной сетью. Однако в некоторых случаях можно обойтись использованием в качестве повторителя или репитера одного из компьютеров.

Чтобы это сделать в ОС Windows 7, достаточно просто запустить маленькую программку WiFi Repeater с двумя параметрами. Кстати, эти параметры лучше прописать в ярлыке, чтобы не вводить каждый раз. Подробнее о том как сделать эту программку из bat-файла, смотрите внизу поста. Ранее я выложил на нее ссылку, но Яндекс посчитал ее вредоносной и пришлось убрать.

wifi repeater

Первый параметр (на скриншоте netname) — имя сети, которая будет продолжать основную сеть. Второй (на скриншоте netkey) — ключ сети. Запустить программу нужно с правами администратора. Сама программа в данном примере находится в корне диска C, что не является условием для её работы.

wifi repeater

Если все было сделано правильно и ваш Wi-Fi адаптер поддерживается, то в Центре управления сетями и общим доступом появится новая сеть. В моем случае она называется aero2.

wifi repeater

Если у второй сети нет доступа в интернет, нужно зайти в свойства основного беспроводного соединения, вкладка «Доступ». Там нужно поставить галочку «Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера».

wifi repeater

Теперь устройства, которые плохо видели основную Wi-Fi сеть, смогут подключатся через созданный программно репитер.

P.S. Итак как упоминалось выше, программа WiFi Repeater упомянутая выше — это не совсем программа. Это просто bat-файл преобразованный в exe-файл. Содержимое bat-файла приведено ниже:

1
2
3
@echo off
netsh wlan set hostednetwork mode=allow ssid="%1" key="%2" keyUsage=persistent
netsh wlan start hostednetwork

Его запуск, соответственно, будет иметь тот же эффект. Можно и не использовать параметры bat-файла, а прописать их внутри — кому как удобнее.


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