Close

Как добавить счетчик просмотров в запись

Для подсчета посещений страниц на 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); ?>

 


Поделитесь статьей «Как добавить счетчик просмотров в запись»

Комментарий

Колобок
21.04.2019 в 21:20

Все очень просто. Здесь мы показываем материалы с максимальным числом просмотров за последнюю неделю. В этот рейтинг может попасть любой материал сайта, включая запись в личном блоге. Редакция оставляет за собой право убрать из рейтинга

Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Автор: Stas Zygar

Привет! С наступившим новым годом! Всем счастья.