Если вы хотите знать, сколько раз была просмотрена страница, не обязательно прибегать к громоздким статистическим плагинам – вполне достаточно внедрения в тему простого счетчика.
Такой счетчик не будет требовать обновлений, не будет конфликтовать с другими плагинами, и будет работать только в той теме, в которую вы его интегрируете.
Создадим две функции – для подсчета просмотров и для вывода количества просмотров. Для этого откройте файл functions.php, и вставьте в него код:
function getPostViews($postID){ $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); return "0 просмотров"; } return $count.' просмотров'; } function setPostViews($postID) { $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ $count = 0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); }else{ $count++; update_post_meta($postID, $count_key, $count); } }
После этого нужно добавить в шаблон страницы, просмотры которой вы хотите считать, метку, фиксирующую просмотры. Если вы хотите считать просмотры постов, то нужно добавить код в файл single.php, если просмотры страниц – в файл page.php, если просмотры прикрепленных вложений (изображения, медиафалы) – то в файл attachment.php (подробные сведения смотрите в посте о шаблонах).
</pre> <p>Ну и последним шагом будет вывод количества просмотров. В шаблон нужно вставить такой код:</p> <pre>
Иногда администратору удобнее смотреть на количество просмотров прямо в админке.
Давайте и такую возможность создадим. Откройте все тот же файл functions.php, и добавьте в него код:
add_filter('manage_posts_columns', 'posts_column_views'); add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2); function posts_column_views($defaults){ $defaults['post_views'] = __('просмотров'); return $defaults; } function posts_custom_column_views($column_name, $id){ if($column_name === 'post_views'){ echo getPostViews(get_the_ID()); } }
Этот код создает отдельную колонку в списке постов с количеством просмотров.

А куда в файле functions.php вставлять эти две функции подсчета и вывода? Я вставил в произвольно место, оно что-то не считает, всё по нулям.
А в single.php что вставили?
Я вставил в image.php указанную Вами строчку с echo.
О да, извиняюсь. Я исправил код – вторую часть.
Ага, заработало. Спасибо!
Только жаль, что по изображениям считаются только те просмотры, где картинка занимает отдельную страницу. Просмотры через плагины для отображения картинок и галерей не считаются.((
А на сколько верно он считает?
Ну насколько верно можно посчитать количество просмотров? Считает все просмотры подряд.
Ну к примеру, я обновляю страницу 5 раз в день, и он меня каждый раз посчитает?
Да, посчитает. А вдруг вы любитель перечитывать? Это счетчик просмотров, а не посетителей.
понял. спасибо за разъяснения..
Как этот плагин будет работать с плагинами кэширования?
Я так понимаю, при кэшировании будет неверно и подсчитываться, и выводиться количество просмотров.
Если вы имеете ввиду статическое кэширование (например, WP Super Cache, Hyper Cache и подобные), то все зависит от времени жизни кэша. Если кэш живет 12 часов, то будут отображаться промежуточные результаты, которых достигнет счетчик за время жизни кэша, то есть за 12 часов.
Если будет использоваться кэширование обращений к базе данных (например, DB Cache Reloaded), то счетчик всегда будет показывать актуальное для данного момента значение.
А как добавить в админке к страницам что бы тоже было видно количество просмотров?