Выводим популярные записи за разный период времени по количеству просмотров и комментариев в WordPress
Изменения порядка вывода записей на вашем сайте в WordPress может быть обусловлено созданием различного рода информеров, с помощью которых вы сможете вывести самые популярные записи за определенный период.
Под популярностью может подразумеваться как активность ваших посетителей (комментирование той или иной записи), так и простые просмотры. О том, как вывести такие записи, сегодня и пойдет речь.
Выводим популярные записи по количеству комментариев за неделю, месяц, год
Для вывода популярных записей мы будем использовать функцию «query_posts». В качестве простого примера выводить мы будем заголовок и ссылку на запись. Реализация:
<ul>
<?php
$time = "&monthnum=".date("m"); // За месяц
$sort = "DESC"; // Порядок сортировки
$numb = "5"; // Количество записей для вывода
query_posts("post_type=post&posts_per_page=".$numb."&orderby=comment_count&order=".$sort."&year=".date("Y").$time);
while (have_posts()): the_post();
?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php
endwhile;
wp_reset_query();
?>
</ul>
Код вставляете в нужное место вашей темы. Что нас здесь интересует?
$numb – количество выводимых записей.
$sort – порядок сортировки, в нашем случае – от большего к меньшему. Если нужно наоборот, замените значение на «ASC».
$time – за какой период вывести данные, в нашем случае – за последний месяц. Если вам нужно осуществить вывод за неделю, то эту строчку замените на:
$time = "&w=".date("W"); // За неделю
А если за год, то замените на:
$time = ""; // За год
Здесь также доступен период день:
$time = "&monthnum=".date("m")."&day=".date("j"); // За день
И час:
$time = "&monthnum=".date("m")."&day=".date("j")."&hour=".date("H"); // За час
Меньшие периоды, думаю, рассматривать нет смысла. По комментариям, собственно, и все.
Выводим популярные записи по количеству просмотров за неделю, месяц, год
Что касается просмотров, для начала вам необходимо установить хак из этой статьи. А вот дальше все делается по аналогии:
<ul>
<?php
$time = "&monthnum=".date("m"); // За месяц
$numb = "5"; // Количество записей для вывода
query_posts("post_type=post&posts_per_page=".$numb."&meta_key=post_views_count&orderby=meta_value_num&year=".date("Y").$time);
while (have_posts()): the_post();
?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php
endwhile;
wp_reset_query();
?>
</ul>
Настройки все те же самые, что и при выводе популярных записей по комментариям, единственное, что меняется – это убирается порядок сортировки.