Я настроил CPT так, чтобы он действовал так же, как и сообщения, но использовал для публикации сведений о событии.
Дело в том, что некоторые из постов находятся в будущем, и на них назначена будущая дата. Проблема в том, что обычные пользователи не могут видеть эти сообщения.
Так:
- Как я могу изменить архив-events.php, чтобы перечислять будущие сообщения тоже? Отображение далеких будущих постов, первых и самых старых постов в последнюю очередь при сохранении нумерации страниц.
- Как сделать так, чтобы, когда пользователь щелкает по будущему сообщению, он не получает страницу 404, не найденную, поскольку сообщение еще не опубликовано технически?
Ответы:
Я смог решить это сам. Весь мой код для регистрации CPT:
Поэтому, чтобы сообщения могли быть видны всем пользователям, даже если они будут установлены в будущем, вам необходимо сделать следующее:
Мы удаляем действие, которое касается публикации позже, и применяем наше собственное действие, чтобы принудительно опубликовать его, несмотря на то, что оно имеет будущую дату с:
Тогда все, что нам теперь нужно сделать, это показать будущие записи на странице архива путем фильтрации
posts_where
:источник
__()
звонкам или не используйте функцию.Брейди, я не могу отблагодарить тебя за то, что ты привел меня к этому решению. Мой клиент уже установил все даты событий без настраиваемого поля, и я не собирался возвращаться и все менять. Ваш код изначально выдавал ошибку при попытке опубликовать, но он работал со следующими небольшими изменениями (сделано в соответствии с форматом, используемым в wp-includes / post.php):
а также
Я потратил некоторое время, пытаясь понять это. Надеюсь, это поможет кому-то еще!
источник
Без изменения статуса поста вы можете отображать будущие посты как отдельные, так и архивные с pre_get_posts:
источник