Счетчик в цикле LOOP барахлит! Как исправить?
-
Добрый вечер
Потихоньку собираю для своего будущего блога функциональные части, — случилась заминка на этапе Вывода Популярных Записей, на главной странице.
Вывожу не плагином, а через функцию (хак). В этом решении есть счетчик
<?php setPostViews(get_the_ID()); ?>
, который надо вставить в single.php, в пределах цикла LOOP.Этот счетчик считает количество просмотров, а с помощью этого кода
<?php echo get_post_meta($post->ID, 'post_views_count', true); ?>
можно вывести результат (в цифрах), в нужном месте страницы (в моем случае, — на Главной).ПРОБЛЕМА (сбой, неполадка): При подсчете просмотров, вместо +1, делает +2. Т.е. изначально 0 просмотров — зашел на страницу, добавило +2 — еще раз обновил, опять +2 (уже 4) ну и т.д.
———————————————————
Вот сам код, для анализа:— Прописываю в functions.php
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); } } 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; }
— Прописываю в single.php внутри цикла loop
<?php setPostViews(get_the_ID()); ?>
— Прописываю в index.php
<?php $args = array( 'numberposts' => 5, 'meta_key' => 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' ); query_posts($args); while ( have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <li><?php the_post_thumbnail ('thumbnail'); ?></li> <li>Автор: <?php the_author_link(); ?></li> <li>Текст записи:<?php the_content(); ?></li> <li>Количество Просмотров записи:<?php echo get_post_meta($post->ID, 'post_views_count', true); ?></li> <li>Количество Комментариев записи:<?php comments_number('пока нет комментариев', '1 комменатрий', '% комментариев'); ?></li> <li>Рубрика: <?php the_category(' '); ?> </li> <li>Метки:<?php the_tags(' ', ', ', '<br />'); ?> </li> <li>Дата:<?php the_date(); ?></li> <?php endwhile; wp_reset_query(); ?>
Помогите разобраться, очень прошу! Это последний «технический штрих» в настройке и я могу переходить к оформлению (html css).
Спасибо!
- Тема «Счетчик в цикле LOOP барахлит! Как исправить?» закрыта для новых ответов.