Поддержка Проблемы и решения Не правильно считает счетчик количества просмотров за

  • Счетчик вывожу не плагином, а через функцию (хак). В этом решении есть счетчик <?php setPostViews(get_the_ID()); ?> , который надо вставить в single.php.
    Вот сама функция для анализа, которая обрабатывает
    Прописываю в 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;
    }
    function setPostViews($postID) {
    $count_key = 'post_views_count';
    $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 echo get_post_meta($post->ID, ‘post_views_count’, true); ?> можно вывести результат (в цифрах), в нужном месте страницы (в моем случае, — на Главной).

    ПРОБЛЕМА (сбой, неполадка): При подсчете просмотров, вместо +1, делает +2. Т.е. изначально 0 просмотров — зашел на страницу, добавило +2 — еще раз обновил, опять +2 (уже 4) ну и т.д.
    Подскажите пожалуйста в чем может быть проблема. Заранее благодарен.

Просмотр 15 ответов — с 1 по 15 (всего 18)
  • Давно-давно сталкивался с такой проблемой, кажется из-за того, что считал главную тоже, или на сайдбаре что-то висело.. хотя, это не суть…

    код счетчика:

    function wikicms_cvp() {
        global $post;
        $key = '_count_views';
        $count = get_post_meta( $post->ID, $key, true );
        if ( is_single() ) {
        	$count++;
        	( is_numeric($count) ) ? update_post_meta( $post->ID, $key, $count ) : add_post_meta( $post->ID, $key, 1, true );
        }
    }
    add_action( 'wp_footer', 'wikicms_cvp' );

    «повесил» на футер, так как более адекватное место для подсчета.. имхо
    выводим (разместите ф-цию wikicms_scvp(); в нужном месте шаблона одиночной записи и шаблона главной страницы):

    function wikicms_scvp() {
        global $post;
        $key = '_count_views';
        $count = get_post_meta( $post->ID, $key, true );
        echo ( is_single() ) ? ( is_numeric($count) ? $count + 1 : 1 ) : ( is_numeric($count) ? $count : 0 );
        //если выводить счетчик только на главной, то заменить на эту строчку
        //echo ( is_numeric($count) ) ? $count : 0;
    }

    прим.: я вывожу и на главной и в посту, сделал синхронный, адекватный, подсчет 🙂

    К сожалению твое решение тоже не помогло, таже история
    При подсчете просмотров, вместо +1, делает +2. Т.е. изначально 0 просмотров — зашел на страницу, добавило +2 — еще раз обновил, опять +2 (уже 4) ну и т.д.
    Может есть еще варианты. Подскажите кто сталкивался с проблемой. Как ее решить? Буду очень признателен.

    Модератор Yuri

    (@yube)

    Я бы начал с мониторинга сетевой активности (firebug->сеть). Возможно, из-за какой-то бяки в html страница грузится второй раз, скажем, вместо какой-то картинки.

    Какую тему оформления вы используете?

    Использую тему. Nova — от ElegantThemesNova

    Юрий Всякого рода бяка исключена

    К сожалению, я не имею доступа в репозиторий ET, поэтому проверить на этой теме оформления не смогу. Но по сути вопроса могу добавить следующее: мой код срабатывает, когда исполняется хук wp_footer, и если честно, я очень сомневаюсь, что он исполняется дважды (даже в кривой теме), по-крайней мере на тех темах оформления, которые использую я, код работает корректно, как и ожидается.
    Размышления такие:
    — Виновата тема оформления.
    — Виноват плагин.
    — Виноват кеш-плагин или кеш сервера.
    Следовательно, найти виновника поможет исполнение пунктов 4-6.

    Всякого рода бяка исключена

    Чем вызвана подобная уверенность?

    Всякого рода бяка исключена, имеется в виду, что страница второй раз не грузится.

    @hobbyits Вы диагностику провели?

    Перед тем как обратиться к Вам всем за помощью я сделал следующее:
    отключал все плагины, устанавливал несколько других тем, перенес базу данных и файлы на localhost все без изменений.
    Сегодня заметил такую особенность неправильный подсчет происходит только в браузере Google Chrome, Safari остальные популярные браузеры Opera, FireFox, Internet Explorer считают как положено.
    С чем это может быть связано?
    Всем участникам благодарен за всякую помощь

    перенес базу данных и файлы на localhost все без изменений.

    Значит вы знакомы с локальной разработкой. Установите чистый блог (дефолтная тема, без плагинов) и используйте один из счетчиков, свой вариант или мой. Заодно проверите все браузеры и убедитесь, что проблема кроется где-то в скриптах.. имхо

    //ну не верю я в такие «чудеса» :))

    Спасибо wikicms, в ближайшее время обязательно сделаю и отпишусь.

    Ну а затем устанавливайте плагины по одному или с темы оформления начните и следите за изменениями, таким способом можно найти вредителя..
    Хотя возможен вариант, когда такое поведение проявляется только в каком-нибудь сочетании, например тема оформления и плагин, или плагин и плагин…

    Не тут то было, поставил в localhost чистый движок + родная тема все равно 2 раза считает. Просто чудеса какие-то. Просто груз. как у других людей этот код работает, хотя находились и такие как я. Это если верить комментариям прочитанных мною на блогах. Нужно наверно еще Ваш код wikicms попробовать. Позже отпишусь.

Просмотр 15 ответов — с 1 по 15 (всего 18)
  • Тема «Не правильно считает счетчик количества просмотров за» закрыта для новых ответов.