Часто так бывает, что необходимо вывеси статистику просмотров страницы. Есть несколько способов как это сделать:
1. искать плагин
2. позаимствовать функцию у коллег.
Способ 2 выглядит проще. Я позаимствовал эту функцию на известном сайте http://wp-kama.ru/, ну а вы же можете её позаимствовать у меня( !я ж не жадный). Плюс к этому коду пришлось дописать свою функцию для вывода количества просмотров, ведь согласитесь, как-то неудобно писать ещё пару строчек кода чтоб вывести статистику просмотров страницы.
Вам нужно вставить этот код в functions.php вашей темы. А в том месте где нужно вывести статистику просмотров сделать вставку типа: <?php count_views(); ?>
/* Подсчет количества посещений страниц
---------------------------------------------------------- */
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;
}
/**
* функция выводит или возвращает к-во просмотров статьи
* @param integer $post_id - id записи, в цикле можно не передавать
* @param boolean $show - вывести или возвратить
* @return int - к-во просмотров
*/
function count_views($post_id=0,$show=true){
global $post;
$post_id=empty($post_id)?$post->ID:(int)$post_id;
$views=get_post_meta($post_id,'views',1);
$views=empty($views)?0:$views;
if($show){
echo $views;
}else{
return $views;
}
}