Когда-то я писал о способе, Как вывести популярные записи по количеству просмотров. Данная статья поможет Вам вывести самые популярные записи, но у нее есть один минус. Если у Вас есть топовые записи, которые превосходят остальные, то они постоянно будут в списке и список не будет меняться. Один из посетителей спросил, как сделать сортировку за определенный промежуток времени, например последний месяц, а не все время. Также была статья где сортировка выполнялась по количеству комментариев - Как вывести список популярных записей на WordPress. Тут я покажу, как сделать сортировку популярных записей WordPress за определенный промежуток времени, а именно за месяц или неделю.
Вывод популярных записей за месяц
Сначала сделаем сортировку за месяц. Для этого в нужном месте вашей темы, там где Вы хотите увидеть вывод популярных записей ПО КОЛИЧЕСТВУ КОММЕНТАРИЕВ, добавить следующий код
<ul> <?php $month = date('m'); $year = date('Y'); query_posts('post_type=post&posts_per_page=5&orderby=comment_count&order=DESC&year=' . $year . '&monthnum=' . $month); while (have_posts()): the_post(); ?> <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></li> <?php endwhile; wp_reset_query(); ?> </ul>
Во второй и третей строке задаем условие сортировки. Это текущий месяц и текущий год. То есть сортировка записей за месяц. В четвертой строке указаны остальные параметры сортировки. Количество выводимых записей - 5. Способ сортировки - количество комментариев.
Чтобы сделать сортировку ПО КОЛИЧЕСТВУ ПРОСМОТРОВ, нужно в четвертой строке заменить сортировку по комментариям на сортировку по просмотрам. Нужно этот код:
orderby=comment_count&order=DESC
поменять на этот:
meta_key=post_views_count&orderby=meta_value_num
Сортировка по просмотрам будет работать при условии если у Вас установлена функция подсчета просмотров. Если Вы еще это не сделали, то Вам поможет статья - Количество просмотров записи WordPress.
Вывод популярных записей за неделю
Для того, чтобы сортировка происходила за неделю и по количеству комментариев, код будет таким:
<ul> <?php $week = date('W'); $year = date('Y'); query_posts('post_type=post&posts_per_page=10&orderby=comment_count&order=DESC&year=' . $year . '&w=' . $week); while (have_posts()): the_post(); ?> <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></li> <?php endwhile; wp_reset_query(); ?> </ul>
Для сортировки по просмотрам, нужно выполнить такую же замену как и в первом коде за месяц.
В обоих примерах в 8 строке выводится ссылка с названием статьи, по желанию можно добавить Вывод миниатюр и немного приукрасит все стилями. На моем сайте Есть много статей где показано как это сделать.
Теперь, если Вам надо сделать сортировку популярных записей за неделю или месяц, то примеры в данной статье помогут Вам это сделать.
На этом все, спасибо за внимание. 🙂