@ddem7

Как исключить повторный подсчет количества просмотров с одного IP для популярных записей на WordPress?

Здравствуйте. Помогите пожалуйста разобраться. Как исключить повторный подсчет количества просмотров для популярных записей с одного IP, т.е. если человек с данного IP посмотрел статью, то чтобы при повторном заходе подсчет уже не велся.
И еще вопрос что надо поправить в коде для совместимости с плагинами кеширования? В одной статье (https://wpcafe.org/tutorials/kak-otobrazhat-populy...) для совместимости с плагином кеширования автор пишет следующее решение, однако я не понял, что именно и де он меняет, а именно:
"Мы используем плагин W3 Total Cache, в нем есть опция под названием "фрагментированное кэширование" (Fragmented Caching). Вы тоже можете использовать этот плагин и данную опцию, чтобы все работало как следует. Вот что надо изменить: mfunc wpb_set_post_views($post_id);

Использую следующее решение bloggood.ru/wordpress/kak-vyvesti-populyarnye-zapi...

в 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);
}
}
в single.php для сбора информации просмотра страницы
<?php setPostViews(get_the_ID()); ?>

Вывод количества просмотров

  • <?php
    $args = array( 'posts_per_page' => 5, 'meta_key' => 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' );
    query_posts($args);
    while ( have_posts() ) : the_post();
    ?>

  • <?php the_title(); ?>

    <?php endwhile; wp_reset_query(); ?>
  • Вопрос задан
  • 165 просмотров
Пригласить эксперта
Ответы на вопрос 2
@tyzberd
делаете проверку, если cookies нет вызываете wpb_set_post_views(get_the_ID());
потом устанавливаете куки.

как я понял если с плагином кеширования, тогда вместо wpb_set_post_views($post_id); пишем
<!-- mfunc wpb_set_post_views($post_id); --><!-- /mfunc -->

это динамический блок https://odd.blog/2013/05/01/mfunc-in-wp-super-cach...
Ответ написан
@ddem7 Автор вопроса
Углубляясь в даную тему прочитал, что счетчик уникальных просмотров через Cookie не стоит делать по многим причинам
https://ru.stackoverflow.com/questions/454939/%D0%...
Но как тогда еще можно реализовать счетчик уникальных просмотров чтобы его можно было связать с данным решением bloggood.ru/wordpress/kak-vyvesti-populyarnye-zapi...
Читал www.cyberforum.ru/php-beginners/thread1626274.html, но еще больше вопросов. Какое решение наилучшее?
Буду благодарен за советы!
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы