X
  • Дизайн та розробка сайту
  • Дизайн і створення сайтів. Розробка тем для WordPress. Створення Landing Page.
  • office@gnatkovsky.com.ua
  • @vgnat
  • Написати мені
Замовити послугу

Вывод популярных записей WordPress за неделю, месяц

Приклад
  • 2024-11-21
  • 11036 переглядів

  • Дизайн та розробка сайту

Доброго времени суток. 🙂

Данная статья будет скорее не отдельным уроком, а дополнением к двум моим старым статьям. Дело в том, что недавно, меня задали вопрос в комментариях, который меня и направил на написание данной статьи.

сортировка месяц неделя

Когда-то я писал о способе, Как вывести популярные записи по количеству просмотров. Данная статья поможет Вам вывести самые популярные записи, но у нее есть один минус. Если у Вас есть топовые записи, которые превосходят остальные, то они постоянно будут в списке и список не будет меняться. Один из посетителей спросил, как сделать сортировку за определенный промежуток времени, например последний месяц, а не все время. Также была статья где сортировка выполнялась по количеству комментариев - Как вывести список популярных записей на 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 строке выводится ссылка с названием статьи, по желанию можно добавить Вывод миниатюр и немного приукрасит все стилями. На моем сайте Есть много статей где показано как это сделать.

Теперь, если Вам надо сделать сортировку популярных записей за неделю или месяц, то примеры в данной статье помогут Вам это сделать.

На этом все, спасибо за внимание. 🙂

Якщо Вам була корисна моя праця, можете фінансово підтримати сайт або відключити блокувальник реклами, що займе 2 хвилини :)

Хочу підтримати фінансово Хочу відключити блокувальник

Оцініть статтю
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 11, в среднем: 4.8 из 5
Читайте також

Deprecated: Функція WP_Query викликана з аргументом, який вважається застарілим з версії 3.1.0! Вираз caller_get_posts застарілий. Використовуйте ignore_sticky_posts. in /var/www/vhosts/gnatkovsky.com.ua/gnatkovsky.com.ua/public/wp-includes/functions.php on line 6078