Выводим количество просмотров WordPress


На скриншоте показан вывод количества просмотров WordPress в анонсах статей.

На днях столкнулся с задачей вывести количество просмотров WordPress в записях, страницах и анонсах статей. В статье хочу поделится с читателями парочкой вариантов вывода просмотров. Первый вариант это установка плагина WP-PostViews. Второй, более предпочтительный, путем добавления функции вывода количества просмотров WordPress непосредственно в файл functions.php и вызова этой функции в определенных местах шаблона.

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

Выводим количество просмотров WordPress с плагином WP-PostViews

Скачайте плагин с официального хранилища WordPress, или загрузите из админки, набрав название плагина — WP-PostViews.

Плагин позволяет выводить кроме количества просмотров, еще и популярные статьи по просмотрам, но я разберу только настройки касающиеся данной статьи.

количество просмотров wordpress

1. Count Views From — Настройка позволяющая выбрать:
Everyone — считать все просмотры;
Guests Only — считается количество просмотров только посетителей, гостей сайта;
Users Only — считается количество просмотров зарегистрированными на сайте пользователями.

2. Exclude Bot Views — Считать или нет просмотры страниц, записей поисковыми роботами и прочими пауками и нечистью:
Yes — считать;
No — не считать.

3. Use AJAX To Update Views — Если вы используете плагин кеширования, можно выбрать, обновлять счетчик количества просмотров сразу после просмотра, (использование AJAX), либо статистика будет обновляться после очистки кеша плагина.

Yes — обновлять счетчик сразу;
No — не обновлять до очистки кеша.

4. Views Template — Показ просмотров:
Впишите слово вместо views. Например — просмотры. Свои слова можно ставить перед и после переменной %VIEW_COUNT%.

Далее в настройках плагина можно выбрать варианты подсчета просмотров на разных страницах. Сохраните настройки.

Теперь придется все-таки повозится с файлами и расставить в нужные вам места шаблона вызов функции подсчета просмотров WordPress

Для этого нужно в файлы шаблона archive.php, single.php, post.php, page.php, добавить код:

<?php if(function_exists('the_views')) { the_views(); } ?>

Найдите в файлах шаблона, где вы хотите вывести количество просмотров строчку:

<?php while (have_posts()) : the_post(); ?>

Либо похожую, и ставьте код вызова либо выше этой строчки, либо ниже.

А можно открыть файл content.php и ставьте вывод сразу после строчки:

<header class="entry-header">

Тогда количество просмотров будет отображаться и в архивах и в анонсах и в самих статьях.

Если вы хотите вывести счетчик количества просмотров WordPress внизу страницы, где выводятся метки и категории (в большенстве шаблонов), то поставьте код вывода после строчки:

<footer class="entry-footer">

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

В шаблоне WordPress за вывод анонсов может отвечать файл loop.php, либо что-то в этом роде. Тогда, чтобы вывести количество просмотров статьи в анонсе, код вывода нужно ставить в него. И ориентироваться на вывод категории и меток этом файле.

Выводим количество просмотров WordPress

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

В данном коде используется аналогичная плагину функция, взятая из него-же, но из нее удалено 90% лишнего мусора (со слов kama, иже автора).

Вставьте в файл functions.php данный код:

* Подсчет количества посещений страниц
---------------------------------------------------------- */
add_action('wp_head', 'kama_postviews');
function kama_postviews() {
/* ------------ Настройки -------------- */
$meta_key = 'views'; // Ключ мета поля, куда будет записываться количество просмотров.
$who_count = 1; // Чьи посещения считать? 0 — Всех. 1 — Только гостей. 2 — Только зарегистрированных пользователей.
$exclude_bots = 1; // Исключить ботов, роботов, пауков и прочую нечесть :)? 0 — нет, пусть тоже считаются. 1 — да, исключить из подсчета.
global $user_ID, $post;
if(is_singular()) {
$id = (int)$post->ID;
static $post_views = false;
if($post_views) return true; // чтобы 1 раз за поток
$post_views = (int)get_post_meta($id,$meta_key, true);
$should_count = false;
switch( (int)$who_count ) {
case 0: $should_count = true;
break;
case 1:
if( (int)$user_ID == 0 )
$should_count = true;
break;
case 2:
if( (int)$user_ID > 0 )
$should_count = true;
break;
}
if( (int)$exclude_bots==1 && $should_count ){
$useragent = $_SERVER['HTTP_USER_AGENT'];
$notbot = "Mozilla|Opera"; //Chrome|Safari|Firefox|Netscape — все равны Mozilla
$bot = "Bot/|robot|Slurp/|yahoo"; //Яндекс иногда как Mozilla представляется
if ( !preg_match("/$notbot/i", $useragent) || preg_match("!$bot!i", $useragent) )
$should_count = false;
}
if($should_count)
if( !update_post_meta($id, $meta_key, ($post_views+1)) ) add_post_meta($id, $meta_key, 1, true);
}
return true;
}

Ну а где нужно вывести количество просмотров WordPress, пишем такой код:

<?php echo get_post_meta ($post->ID,'views',true); ?>

Заметьте, что и в этом коде есть возможность некоторых настроек. Смотрите комментарии внутри кода.

По поводу совместимости кода с плагинами кеширования, так я тестировал с плагином Hyper Cashe, код работает корректно.


Похожие по Тегам статьи