Счетчик просмотров записи по ip адресу

Для записи количества просмотров надо в файл functions.php в папке вашего шаблона добавить функцию приведенную ниже:

function setPostViews($postID) {

    $user_ip = $_SERVER['REMOTE_ADDR']; //узнаем текущий IP-адрес посетителя
    $key = $user_ip . 'x' . $postID; //объединяем ID записи и IP, чтобы сформировать уникальный ключ
    $value = array($user_ip, $postID); // сохраняем ID записи IP в виде отдельных значений (см. примечание)
    $visited = get_transient($key); //получить данные и сохранить в переменной

    //проверяем, ID/IP ($key) на наличие в базе
    if ( false === ( $visited ) ) {

        //сохраняем уникальный ключ, ID записи и IP посетителя на 12 часов если он отсутствует
        set_transient( $key, $value, 60*60*12 );

        // запись данных в базу
        $count_key = 'views';
        $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);
        }


    }

}

Теперь надо в шаблон записи вашей темы вставить этот код:

<?php setPostViews(get_the_ID()); ?>

Для вывода количества просмотров надо в файл 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;
}

А в место где хотите вывести количество просмотров надо вставить это:

<p>Просмотрено <?php echo 
getPostViews(get_the_ID());
?> раз</p>

admin