В файле single.php я считаю количество просмотров и вывожу их там. Как мне сделать, чтобы количество просмотров можно было выводить на главной и брать данные с файла single.php
Вот исходник файла single.php:PHP код:Зарание благодарен!
<?php get_header()?>
<div id="main">
<div class="beadcrumb">
<div class="left_crumb">
<div class="path"></div>
</div>
<div class="bg_crumb">
<?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?>
</div>
<div class="right_crumb"></div>
<div class="right_corner_crumb"></div>
</div>
<?php get_sidebar()?>
<div id="content">
<div class="corner_content"></div>
<?php if(have_posts()):?>
<?php while(have_posts()):the_post()?>
<div class="title">
<div class="left_title_content"></div>
<div class="background">
<h1><a href="<?php the_permalink();?>"><?php the_title();?></a></h1>
</div>
<div class="right_title_content"></div>
</div>
<div class="info_content">
<ul>
<li><span>Добавил:</span><span class="author_news"><?php the_author();?></span>|</li>
<li><span><?php echo get_the_date();?></span>|</li>
<li><span>Просмотров:</span><span><?php echo getPostViews(get_the_ID());?></span>|</li>
<li><span>Комментариев:</span></li>
</ul>
</div>
<div class="end"></div>
<div class="line"></div>
<?php the_post_thumbnail();?>
<div class="content"><?php the_content();?>
<?php comments_template();?>
<div class="border_title"></div>
<div class="info_category">
<div class="line_bottom_content"></div>
</div>
<div class="download">
<img src="<?php bloginfo('template_url');?>/img/download.gif">
</div>
<div id="files_get">
<p>Скачать файл:</p>
<?php if ( get_post_meta($post->ID, 'turbobit', true) ) : ?>
<a href="<?php echo get_post_meta($post->ID, "turbobit", true); ?>" rel="nofollow" class="turbobit" target="_blank">
</a>
<?php endif; ?>
<?php if ( get_post_meta($post->ID, 'deposit', true) ) : ?>
<a href="<?php echo get_post_meta($post->ID, "deposit", true); ?>" rel="nofollow" class="deposit" target="_blank">
</a>
<?php endif; ?>
<?php if ( get_post_meta($post->ID, 'letitbit', true) ) : ?>
<a href="<?php echo get_post_meta($post->ID, "letitbit", true); ?>" rel="nofollow" class="letitbit" target="_blank">
</a>
<?php endif; ?>
</div>
<div class="social">
<p>Поделится в соц.сети:</p>
<div class="share42init" data-url="<?php the_permalink() ?>" data-title="<?php the_title() ?>"></div>
</div>
<script type="text/javascript" src="http://fr3809bb.bget.ru/share42/share42.js"></script>
</div>
<!--похожие статьи-->
<div class="recents"> <!--Вывод предыдущих записей, где опубликован пост (записей из рубрики)-->
<p><strong>Похожие записи:</strong></p>
<ul>
<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$first_tag = $tags[0]->term_id;
$args=array(
'tag__in' => array($first_tag),
'post__not_in' => array($post->ID),
'showposts'=>5, // количество выводимых названий по теме постов.
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Постоянная ссылка <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php endwhile;}
wp_reset_query();}
?>
</ul>
<!--Вывод -->
<ul>
<?php $posts = get_posts('orderby=rand&numberposts=5');
foreach($posts as $post) { ?>
<li><a href="<?php the_permalink(); ?>
" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php } ?>
</ul>
</div>
<!--конец похожих статей-->
<?php endwhile;?>
<?php endif;?>
</div>
<?php include(TEMPLATEPATH.'/right.php');?>
</div>
<?php get_footer()?>
Как выводить количество просмотров с файла single.php на главную станицу
(Ответов: 12, Просмотров: 1643)
- 16.12.2013 14:34
- Регистрация: 06.08.2013
- Сообщений: 307
- Репутация: 5
- 16.12.2013 17:18
Смотрите файл index.php, ну и вставляйте где необходимо Ваше:
PHP код:... <?php echo getPostViews(get_the_ID());?> ...
- 16.12.2013 19:04
- Регистрация: 06.08.2013
- Сообщений: 307
- Репутация: 5
doctordick,так не подойдет. В таком случае будет считаться и просмотр страницы и к просмотрам записей будет добавляться +1, даже и не посещая их. Нужно, чтобы брался именно количество просмотров постов и выводилось на главной странице
- 16.12.2013 19:18
SergeyNetIt если Вы использовали такой вариант getPostViews
PHP код:никаких +1 там нету.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 View";
}
return $count.' Views';
}
+1 работает для setPostViews - 17.12.2013 15:01
- Регистрация: 06.08.2013
- Сообщений: 307
- Репутация: 5
doctordick,Смотрите. да я использовал такой вариант функции getPostViews:
PHP код:Функция setPostViews: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;
}
PHP код:В файле single.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);
}
}
PHP код:для сбора статистики. А потом вывожу ее в нужном мне месте тоже в цикле так:<?php setPostViews(get_the_ID());?>
PHP код:. Все привильно работает. Я захожу в конкретный пост и срабатывает счетчик.<?php echo getPostViews(get_the_ID());?>
Но, я хочу вывести значение этого счетчика на главную страницу, где будут находится все посты и для них будут выводится количество просмотров, которое должно браться из single.php.
В файле single.php я в цикле просто пишуPHP код:. Нажимаю обновить. Счетчики не обновляются на главной - это мне и нужно. Но захожу по ссылке на конкретный пост и вижу, что счетчик все равно внутри сработал. Значение +1.<?php echo getPostViews(get_the_ID());?>
Как быть??? - 17.12.2013 15:14
Главная страница это index.php и в ней только getPostViews.
Собственно страницы это single.php, в котором setPostViews и getPostViews.
отсюда:
Счетчики не обновляются на главной - это мне и нужно.Оно так и работает. Я не пойму, что Вам нужно? Ведь на главной только вывод, а на конкретной странице +1 и вывод.Но захожу по ссылке на конкретный пост и вижу, что счетчик все равно внутри сработал. Значение +1. - 17.12.2013 15:35
- Регистрация: 06.08.2013
- Сообщений: 307
- Репутация: 5
doctordick,Все, исправил, то у меня была ошибка, не закрыл скобку. Все работает. Но конечно не так как хотелось. Если один пользователь будет по несколько раз заходит на одну и ту же запись или обновлять страницу будет происходить +1. не подскажите, как добиться уникального просмотра в день?
- 17.12.2013 15:43
SergeyNetIt
Самый легкий способ - выставлять куки пользователю со сроком истечения 1 день для каждой просмотренной страницы.
Но здесь свои грабли - пользователь куки может и убить и проигнорировать и т.п. Простого грамотного способа я не вижу :-( - 17.12.2013 15:45
- Регистрация: 06.08.2013
- Сообщений: 307
- Репутация: 5
doctordick,А реализацию идеи не подскажите или где можно про это почитать?
- 17.12.2013 16:09
Попробуйте что-то типа такого:
PHP код:function setPostViews($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, '1');
} else {
if (!isset($_COOKIE['viewed_posts'][$postID])) {
$count++;
update_post_meta($postID, $count_key, $count);
} else {
if (!headers_sent()) {
setcookie('viewed_posts[' . $postID . ']', '', time() + (3600 * 24));
}
}
}
}
Тэги топика:
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Как увеличить количество просмотров на новостном сайте? | Вопросы от новичков | 17 | 24.11.2013 21:40 |
Как узнать количество просмотров статьи? | WordPress | 2 | 28.03.2013 11:29 |
Как в wordpress не выводить страницу на главную | Вопросы от новичков | 6 | 01.02.2013 23:31 |
НЧ и количество просмотров страниц | Общие вопросы поисковой оптимизации | 5 | 25.11.2012 16:04 |
Как выводить на главную только некоторые анонсы постов | WordPress | 2 | 17.08.2012 21:02 |