Многие из наших читателей начинающего уровня вскоре начинают изменять свои темы WordPress, поэтому у нас есть шпаргалка по темам WordPress, чтобы помочь им начать работу. Это создает некоторые интересные проблемы для новых пользователей. Один из таких читателей недавно спросил нас, как отобразить посты прошлой недели в WordPress. Они просто хотели добавить на главную страницу раздел, который отображал бы посты за предыдущую неделю. В этой статье мы покажем вам, как отобразить сообщения за прошлую неделю в WordPress.
Прежде чем мы покажем вам, как отображать посты предыдущей недели, давайте сначала рассмотрим, как вы можете отображать посты текущей недели с помощью WP_Query. Скопируйте и вставьте следующий код в функции вашей темы.php файл или плагин для конкретного сайта.
function wpb_this_week() < $week = date('W'); $year = date('Y'); $the_query = new WP_Query( 'year=' . $year . '&w=' . $week ); if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
» title=»Постоянная ссылка на «>
В приведенном выше коде примера мы сначала узнали текущую неделю и год. Затем мы использовали эти значения в WP_Query для отображения постов за текущую неделю. Теперь все, что вам нужно сделать, это добавить в файл вашей темы, где вы хотите отображать посты.
Это было просто, не так ли? Теперь, чтобы отобразить посты прошлой недели, вам нужно всего лишь отнять 1 от значения недели. Но если это первая неделя года, то вы получите 0 за неделю и текущий год вместо прошлогоднего. Вот как можно решить эту проблему.
function wpb_last_week_posts() < $thisweek = date('W'); if ($thisweek != 1) : $lastweek = $thisweek - 1; else : $lastweek = 52; endif; $year = date('Y'); if ($lastweek != 52) : $year = date('Y'); else: $year = date('Y') -1; endif; $the_query = new WP_Query( 'year=' . $year . '&w=' . $lastweek ); if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
» title=»Постоянная ссылка на «>
В приведенном выше примере кода мы разместили две проверки. Первая проверка устанавливает значение последней недели на 52 (это последняя неделя в году), когда значение текущей недели равно 1. Вторая проверка устанавливает значение года на прошлый год, когда значение последней недели равно 52.
Для отображения постов за прошлую неделю все, что вам нужно сделать, это добавить в файл шаблона вашей темы место, где вы хотите их отобразить. Или если вы хотите иметь шорткод, чтобы вы могли добавить это на страницу или в виджет, тогда просто добавьте эту строку ниже приведенного выше кода.
add_shortcode('lastweek', 'wpb_last_week_posts');
Теперь вы можете использовать этот шорткод в посте, странице или виджете, как показано здесь:
Обратите внимание, что вам не всегда нужен WP_Query для создания пользовательских запросов. WordPress поставляется с множеством функций, которые помогают вам отображать последние сообщения, архивы, комментарии и т.д. Если есть более простой способ использования существующих функций, то вам не нужно писать собственные запросы.
Мы надеемся, что эта статья помогла вам отобразить посты прошлой недели в WordPress. Поэкспериментируйте с кодом и измените его в соответствии со своими потребностями. Сообщите нам, если у вас есть вопросы, оставив комментарий ниже или присоединяйтесь к нам в Twitter.
Источник: www.wpbeginner.com