Группировка постов по дате
-
Как сделать, чтобы посты группировались по дате? Т.е. идет заголовок 10 апреля и под ним список постов, затем заголовок 11 апреля и под ним список постов и т.д.
-
Так и есть во всех темах по умолчанию — сортировка по дате, новые вверху.
Добавлю и уточню к сообщению коллеги выше
идет заголовок 10 апреля и под ним список постов, затем заголовок 11 апреля и под ним список постов
В WP есть страницы архивов по датам. В них вы увидите именно то, что хотите увидеть
Например
http://ваш_сайт/2018/27/3/
— страница архива записей за 3 марта 2018 гhttp://joxi.ru/1A5Kv8gSKVJDNm
(надеюсь ясно, что если за эту дату нет постов — то и страницы такой не будет)Т.е. идет заголовок 10 апреля и под ним список постов, затем заголовок 11 апреля и под ним список постов и т.д.
Использовать в шаблоне не the_time(), а the_date() (или get_the_date() и if в зависимости от верстки шаблона). Функции идентичны во всем, кроме одного: the_date() выводит дату-время только если дата изменилась.
Матчасть: https://developer.wordpress.org/reference/functions/the_date/Реверсный порядок — это немного другой вопрос. Если коротко, то можно использовать хук ‘pre_get_posts’ либо поставить плагин.
Так и есть во всех темах по умолчанию — сортировка по дате, новые вверху.
Так речь о группировке, а не сортировке.
В WP есть страницы архивов по датам. В них вы увидите именно то, что хотите увидеть
Например http://ваш_сайт/2018/27/3/ — страница архива записей за 3 марта 2018 г
Меня не интересуют отдельные страницы. Мне нужно, чтобы на одной странице посты группировались по датам. Дата участвует при этом в качестве заголовка.
Так речь о группировке, а не сортировке.
А чем, в данном случае это отличается? Они сортируются и соответственно группируются по дате.
Во так мне нужно
11 апреля 2018
— пост 1
— пост 2
— пост 3
12 апреля 2018
— пост 1
— пост 2
— пост 3
13 апреля 2018
— пост 1
— пост 2
— пост 3Во так мне нужно
И чем это отличается от дефолтного?
В дефолтном разве посты группируются под заголовками (дата в качестве заголовка)?
- Ответ изменён 6 лет, 5 месяцев назад пользователем dmitriy88.
В дефолтном разве посты группируются под заголовками (дата в качестве заголовка)?
? Я Вас не понимаю. Заголовки есть у постов.
Хорошо, не заголовок, а допустим дата под тегом H3, затем список постов по этой дате. Затем следующая дата под тегом H3 и список постов и т.д. Надеюсь, что так понятнее.
дата под тегом H3, затем список постов по этой дате.
Я же написал, что можно использовать.
Я же написал, что можно использовать.
Если честно, то я ничего не понял.
Хорошо, не заголовок, а допустим дата под тегом H3, затем список постов по этой дате. Затем следующая дата под тегом H3 и список постов и т.д. Надеюсь, что так понятнее.
А, вот теперь понятнее 🙂 (хотя мне трудно представить зачем это нужно 🙂 )
Это нужно в шаблонах (своих.. таксономий?) использовать множественные циклы.
Но если это сложно — могу предложить костыль — писать на каждую дату пост формата «статус» или «заметка» и назначать ему время новее всех остальных.
использовать множественные циклы.
Зачем усложнять? Выводить дату между постами, если она изменилась. Визуально — группировка, семантически — нет, но если пошаманить то можно и обертки прикрутить.
Вот как-то так.$the_date = ''; if ( have_posts() ) { while ( have_posts() ) { the_post(); if ( $the_date != get_the_date('Y.m.d') ) { $the_date = get_the_date('Y.m.d'); echo "<h3>$the_date</h3>"; } // // Post Content here // } }
- Тема «Группировка постов по дате» закрыта для новых ответов.