Записи за неделю, отсортированные по просмотрам

👍 Научим создавать сайты на WordPress бесплатно за 19 уроков. Подробнее →

Здравствуйте. Помогите реализовать следующую штуку. Мне нужно вывести последние 5 записей на этой неделе и отсортировать их по количеству просмотров. По отдельности эти вещи у меня получились. Т.е. сортировка по просмотрам

</pre>
<p>Вывод записей за неделю:</p>
<pre>

Но когда я объединяю эти параметры, выводятся записи за ВЕСЬ период отсортированные по просмотрам, т.е. как в первом случае:


Подскажите как реализовать задачу?

Создай свой первый сайт на WordPress

r.yevgeniy
Оцените автора
Добавить комментарий

  1. tiaurus

    Ну можно примерно так это сделать:

    <?php query_posts("showposts=5&meta_key=_pageviews&orderby=meta_value_num&order=DESC") ?>
    <?php while (have_posts()) : the_post(); ?>
        <?php $mylimit=7 * 86400; //устанавливаем давность постов в секундах - дни умножаем на  к-во секунд в день
        $post_age = date('U') - get_post_time('U');
        if ($post_age < $mylimit) { ?>
            <a href="<?php the_permalink() ?>" rel="bookmark">
        <?php } ?>
    <?php endwhile; ?>
    
    Ответить
    1. r.yevgeniy автор

      Попробовал. работает если только оставить один параметр:

      <div class="side-widget thumb-item">
      	<h3 class="side-title">Неделя</h3>
      	<ul>
      		<?php  
      			query_posts('posts_per_page=5');
      			if (have_posts()) : while (have_posts()) : the_post(); ?>
      				<?php $mylimit=7 * 86400; //дни умножаем на  к-во секунд в день
      		    		$post_age = date('U') - get_post_time('U');
      		    		if ($post_age < $mylimit) { ?>
      			<li>
      			">
      			  <?php
      			 if (has_post_thumbnail()) {
      				the_post_thumbnail('thumbnail', array ('class' => 'index-ul-thumbs', 'alt' => '', 'title'=>'') ); }?>
      			  
      				<h4>">
      				<?php the_title(); ?>
      				</h4>
      				 <div class="views"><?php if(function_exists('the_views')) { the_views(); } ?></div>
      				 <div class="date"> <span class="day"><?php the_time('d'); ?></span> <?php the_time('F Y'); ?></div>
      				 <div class="clear"></div>
      			</li>
      			<?php } ?>
      		<?php endwhile; endif; ?>
      	</ul>
      </div>

      Показывает при этом две записи всего за 19 января. Хотя я на этой неделе еще не писал новостей. Ну это ладно.

      Если добавить параметра сортировки по просмотрам, то ничего не вводится

      <div class="side-widget thumb-item">
      	<h3 class="side-title">Неделя</h3>
      	<ul>
      		<?php  
      			query_posts('posts_per_page=5&meta_key=views&orderby=meta_value_num&order=DESC');
      			if (have_posts()) : while (have_posts()) : the_post(); ?>
      				<?php $mylimit=7 * 86400; //дни умножаем на  к-во секунд в день
      		    		$post_age = date('U') - get_post_time('U');
      		    		if ($post_age < $mylimit) { ?>
      			<li>
      			">
      			  <?php
      			 if (has_post_thumbnail()) {
      				the_post_thumbnail('thumbnail', array ('class' => 'index-ul-thumbs', 'alt' => '', 'title'=>'') ); }?>
      			  
      				<h4>">
      				<?php the_title(); ?>
      				</h4>
      				 <div class="views"><?php if(function_exists('the_views')) { the_views(); } ?></div>
      				 <div class="date"> <span class="day"><?php the_time('d'); ?></span> <?php the_time('F Y'); ?></div>
      				 <div class="clear"></div>
      			</li>
      			<?php } ?>
      		<?php endwhile; endif; ?>
      	</ul>
      </div>
      Ответить