Aligatro
@Aligatro
Turn food and coffee into software...

Как в Wordpress провести подсчет просмотров при помощи ajax?

Доброго времени суток. После установки кеша, возникла некая проблема. При включенном кешировании (по понятным причинам) не считаются просмотры статей на сайте. Сам подсчет просмотров выполнен 2-мя функциями:

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);
    }
}


Хотелось бы попросить знающий, разбирающихся людей в ajax, помочь сделать скрипт передачи значения о просмотре (в обход кешированию) после обновления страницы.
  • Вопрос задан
  • 2782 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Azzrael
В принципе в кодексе всё написано.

В functions.php пишете обработчик getPostViews. Вешаете его на

add_action( 'wp_ajax_viewCount', 'getPostViews' );

В scripts или в теле пишете запрос:

jQuery.post(ajax_object.ajax_url,{action:viewCount,postID:jQuery('.post').attr('id'});


В шаблоне в single.php пропишите айдишник поста:

<div id="post-234" class="post"><?php the_content(); ?></div>


Ну а в getPostViews надо будет отсечь post- от post-234, ну и postID забрать через $_POST, ну вы поняли.
Ответ написан
Комментировать
rOOse
@rOOse
Frontend developer
Какой плагин кеширования? Почитайте его документацию, обычно есть способ указать что не кешировать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы