Для подсчета посещений страниц на WordPress и отображения в записи количества просмотров, я добавил эту полезную функцию в funсtions.php. В отличие от плагинов, дает минимальную нагрузку на сервер. Конечно, эти данные администратор сайта может посмотреть, например, в Гугл аналитике или метрике Яндекса, но возможно пользователю тоже интересно. У функции есть возможность исключить подсчет ботов, а также просмотры администратором сайта.
/* Счетчик посещений */
add_action('wp_head', 'sz_postviews');
function sz_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;
$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'];
$nobot = "Mozilla|Opera";
$bot = "Bot/|robot|Slurp/|yahoo";
if ( !preg_match("/$nobot/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;
}Эту строчку кода нужно добавить в single.php, где вы хотите чтобы выводился счетчик просмотров:
Просмотров: <?php echo get_post_meta ($post->ID,'views',true); ?>