Здравствуйте. Помогите пожалуйста разобраться. Как исключить повторный подсчет количества просмотров для популярных записей с одного 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(); ?>