Я не думаю, что есть простой параметр, чтобы сказать «все сообщения до этой даты», поэтому вы должны применить фильтр posts_where_paged
. Там вы можете проверить на !(is_archive() || is_search())
, потому что эти два могут продолжаться как обычно. Для других частей вы добавляете " AND $wpdb->posts.post_date < NOW()"
или что-то в этом роде (но не используйте сейчас, так как это скроет события, которые происходят позже сегодня, и вы, вероятно, этого не хотите).
Аналогичный вопрос был задан на сайте WordPress Stack Exchange (в закрытой бета-версии до 20 августа 2010 года, поэтому вы не сможете посетить его, пока не зарегистрируетесь заранее). Предложение Джо Хойла было просто:
Если все, что вы хотите сделать, это добавить
дополнительная дата для 'show times', это может быть
проще добавить мета-поле, которое делает
именно это - используя дату публикации
подделать это может быть потенциально
проблематично, так как WordPress установит его
в «будущий» статус, когда это
обновлено с будущей датой публикации (я
думаю), так что вам придется зацепить
каждый раз, когда сообщение обновляется, чтобы установить его
вернуться снова. Кроме того, таким образом, вы могли бы
Зарезервировать «Дата публикации» для чего это
предназначенный.
Я бы, наверное, просто использовал meta_key
,
и пользовательский мета-бокс. Хотя это
зависит от сложности ваших запросов
которые показывают сообщения.
Если вы установите meta_value как
отметка времени, вы можете заказать по шоу
дата по-прежнему или выберите до /
после определенной даты:
$events = get_posts('post_type=events&meta_key=show_time&meta_value='
. strtotime( '+1 week' ) .
'&meta_compare=<&orderby=meta_value');
Получил бы все "события" с показом времени
не позднее, чем через неделю от текущего
Дата. Примечание: приведенное выше не проверено, но
должен работать:)
(Этот ответ - вики сообщества, поэтому я не получаю баллы за репосты за то, что просто перепостил то, что сказал Джо.)