Как сделать счётчик количества просмотров каждой статьи?Хорошего настроения всем читателям – Sozdaiblog.ru!

В этом посте я покажу, как сделать счётчик количества просмотров каждой статьи в отдельности на Вашем сайте или блоге.

Перед тем как приступить к реализации данной функции скажу пару слов о том, кому и для чего это может понадобиться.

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

Ну а для более продвинутых Веб-мастеров, данная фишка является необходимым вспомогательным инструментом для реализации нового функционала на их сайте. Об этом мы обязательно поговорим в одном из ближайших постов.

Думаю, что достаточно уже разговоров, давайте действовать.

Итак.

Как сделать счётчик количества просмотров каждой статьи?

Первое что Вам нужно сделать, это открыть для редактирования файл functions.php, который находится в папке с Вашей активной темой оформления сайта и в самом конце вставить следующий код:

/* Подсчет количества посещений страниц
---------------------------------------------------------- */
add_action('wp_head', 'sozdaiblog_postviews');
function sozdaiblog_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;
}

После этого всё в той же папке с темой находим файл single.php, который отвечает за вывод отдельных постов в WordPress, открываем для редактирования и в необходимое место (там, где нужно вывести счётчик) вставляем такой код:

Просмотров: <?php echo get_post_meta ($post->ID,'views',true); ?>

В большинстве случаев счётчик количества просмотров страниц вставляют после заголовка поста (тег H1).

Но, это решать уже Вам.

Выглядеть это будет примерно так:

На сегодня у меня всё, всем удачи и до следующих постов!

С уважением, Денис Черников!