Как отображать записи по месяцам?
9 июл. 2011 г., 04:48:24
Просмотры: 22.4K
Голосов: 1
Как можно использовать wp-query для отображения записей по месяцам за последний год? Или, возможно, это можно реализовать с помощью какого-то хака wp_archive?

Kyle Hotchkiss
147
Комментарии
Все ответы на вопрос
3
1
WordPress 3.7 представил date_query
для отображения записей по месяцам:
$args = array(
'date_query' => array(
array(
'month' => $month
)
)
);
$query = new WP_Query( $args );
Примечание: $month означает номер месяца (от 1 до 12)

A'laa Nassar
29
25 окт. 2017 г. 14:10:42
0
Это не хак, а функция. Вы можете просто использовать wp_get_archives
http://codex.wordpress.org/Function_Reference/wp_get_archives
В качестве альтернативы можно использовать wp_query
с параметром времени для фактического контента, например:
//Декабрь
$query = new WP_Query( 'monthnum=12' );
http://codex.wordpress.org/Class_Reference/WP_Query#Time_Parameters

Wyck
18K
9 июл. 2011 г. 06:32:58
1
Попробуйте это, должен уточнить, что код основан на сниппете, который я видел.
<?php
$blogtime = date('Y'); // Текущий год
$prev_limit_year = $blogtime - 1; // Предыдущий год
$prev_month = ''; // Предыдущий месяц
$prev_year = ''; // Предыдущий год
$args = array(
'posts_per_page' => 20, // Количество постов на странице
'ignore_sticky_posts' => 1 // Игнорировать закрепленные посты
);
$postsbymonth = new WP_Query($args); // Создаем новый запрос
while($postsbymonth->have_posts()) { // Цикл по постам
$postsbymonth->the_post(); // Устанавливаем текущий пост
// Проверяем изменился ли месяц или год по сравнению с предыдущим и равен ли год предыдущему году
if(get_the_time('F') != $prev_month || get_the_time('Y') != $prev_year && get_the_time('Y') == $prev_limit_year) {
echo "<h2>".get_the_time('F, Y')."</h2>\n\n"; // Выводим заголовок с месяцем и годом
}
?>
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<?php // ваши другие шаблонные теги ?>
<?php
$prev_month = get_the_time('F'); // Запоминаем текущий месяц
$prev_year = get_the_time('Y'); // Запоминаем текущий год
}
?>

Andres Yanez
396
24 нояб. 2011 г. 03:56:06
Похожие вопросы
3
ответов