Intereting Posts
Как изменить текст Remove featured image Как WordPress создает свою базу данных во время установки? Постепенно добавьте или вычтите из поля usermeta Подкатегория CSS, которую читает панель администратора Обновление плагинов WordPress ломает SVN Самый быстрый способ (наименьшее количество шагов) для локального импорта удаленной базы данных с использованием WP-CLI Отображение таксономий как ссылок категории на боковой панели и создание страниц для этих Пожалуйста, помогите мне в этом примере с фильтром, чтобы понять, как они работают Вход / Регистрация для определенных страниц Как получить URL-адрес insert.php в jquery? Почему мой плагин не видит другие классы? Как проверить, находится ли пользователь в терминах таксономии на странице родителей, ребенка или внука? Создание плагина, доступного только в интерфейсе для входа в супер-администратор Создайте WP_Query для поиска сообщений по их категориям или их родительским / дочерним категориям Загрузите созданные пользователем данные из WordPress

Отображение события в течение двух заданных временных рамок

Я пытаюсь отобразить два разных сообщения из моего CPT с именем Events.

Одно будет следующим событием, другим будет предыдущее событие.

У меня есть метабокс под названием «Дата события». Клиент в данный момент назначает дату события.

Я думаю о том, чтобы каким-то образом использовать эту дату в качестве «прерывателя», если она была записана в формате DMY и эта дата прошла, то это событие не будет отображаться в следующем событии, вроде даты истечения срока действия.

Поэтому мне нужно будет запросить сообщения до ближайшей даты, отображаемой в метабоксе, и отобразить эту запись как следующее событие.

Вот как логика будет работать у меня в голове, однако я не могу найти правильный ступень, чтобы начать.

Извините, если это не очень понятно.

Solutions Collecting From Web of "Отображение события в течение двух заданных временных рамок"

Запрос в таблице метаданных медленный, и поскольку, поскольку он также используется для общих данных, вы должны быть осторожны в своем формате даты, если вы там сохраняете даты. Например, с форматом dmY :

  • 01112014 (1 ноября 2014 года)
  • 11012014 (11 января 2014 года)
  • 12052014 (12 мая 2014 года)

является «правильным» в том, что цифры отсортированы правильно, но дает вам неправильный порядок, хронологически (обычно это то, что вы хотите с событиями).

Поэтому, если вы используете postmeta, вы должны использовать либо Ymd метку, либо формат Ymd . Предполагая, что вы можете получить следующее событие:

 $args = array( 'post_type' => 'event', 'posts_per_page' => 1, 'meta_query' => array( array( 'key' => 'date', //or whatever key you're using 'value' => date_i18n( 'Ymd' ), 'compare' => '>=' ) ), 'orderby' => 'meta_value', 'meta_key' => 'date', //or whatever key you're using 'order' => 'asc', ); $events = get_posts( $args ); if( $events ){ $next_event = array_pop( $events ); }else{ //no event found } 

Тем не менее, лучше избегать метаданных сообщений (для проблем с производительностью – это еще хуже для повторяющихся событий, если вам когда-нибудь понадобится). Кроме того, есть куча разных плагинов управления событиями ( я создал: Event Organizer ), которые не только обрабатывают все это для вас, но и предоставляют пользовательский интерфейс для пользователя, а не используют настраиваемые поля.

С помощью Event Organizer вы можете получить следующее событие:

 $events = eo_get_events( array( 'event_start_after' => 'now', 'posts_per_page' => 1 )); if( $events ){ $next_event = array_pop( $events ); }