X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Wordpress: Проблемы с функцией или Циклом Loop?, Барахлит счетчик количества просмотров страницы, вместо +1, делает +2.
maxhuman
maxhuman
Topic Starter сообщение 3.9.2012, 1:01; Ответить: maxhuman
Сообщение #1


Новичок
*

Группа: Viewer
Сообщений: 1
Регистрация: 8.8.2012
Поблагодарили: 0 раз
Репутация:   0  


Добрый вечер

Потихоньку собираю для своего будущего блога функциональные части, - случилась заминка на этапе Вывода Популярных Записей, на главной странице.

Вывожу не плагином, а через функцию (хак). В этом решении есть счетчик <?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).

Спасибо!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) ТИЦ или ТРАСТ ?
13 regem 642 Сегодня, 17:46
автор: regem
Горячая тема (нет новых ответов) Что лучше, фриланс, удаленка, или работа в офисе солидной компании?
97 Levizar 7964 Сегодня, 13:51
автор: Smspva
Открытая тема (нет новых ответов) Адаптивная вёрстка и натяжка на Wordpress, DLE, Joomla и др. Создание мобильных версий.
Хороший код с оптимизацией по скорости. Сайты и лендинги "под ключ
15 Nell 1151 13.12.2017, 23:36
автор: Nell
Горячая тема (нет новых ответов) Вёрстка, натяжка на WordPress, Joomla, качественно, доступно
53 WhiteIce 23778 12.12.2017, 19:41
автор: WhiteIce
Горячая тема (нет новых ответов) Разработка сайтов Joomla Wordpress Opencart
Разработка, верстка, оптимизация веб сайтов.
48 WoWeb 7352 12.12.2017, 13:37
автор: serg5777


 



RSS Текстовая версия Сейчас: 15.12.2017, 18:37
Дизайн