На скриншоте показан вывод количества просмотров WordPress в анонсах статей.
На днях столкнулся с задачей вывести количество просмотров WordPress в записях, страницах и анонсах статей. В статье хочу поделится с читателями парочкой вариантов вывода просмотров. Первый вариант это установка плагина WP-PostViews. Второй, более предпочтительный, путем добавления функции вывода количества просмотров WordPress непосредственно в файл functions.php и вызова этой функции в определенных местах шаблона.
Так как далеко не все владельцы сайтов разбираются в кодах шаблона, публикую оба варианта вывода числа просмотров. Хотя и в плагине вызов функции нужно прописывать в файлах шаблона вручную.
Выводим количество просмотров WordPress с плагином WP-PostViews
Скачайте плагин с официального хранилища WordPress, или загрузите из админки, набрав название плагина — WP-PostViews.
Плагин позволяет выводить кроме количества просмотров, еще и популярные статьи по просмотрам, но я разберу только настройки касающиеся данной статьи.
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, код работает корректно.
Русский букет Доставка цветов в Заречном dostavka-byketov.ru. Свежая информация участие в ярмарках: как принять участие здесь.