Проблемы с WP_Query, Loop, условие и сообщения на страницу

Я создаю веб-сайт, и у меня есть пользовательские типы (плагин: типы ). Эти пользовательские типы называются «Veranstaltungen» -> они являются событиями.

Все эти события имеют начальную дату ( start-datum ) и дату end-datum ( end-datum ), которые являются пользовательскими полями.

На главной странице моего сайта я хочу отобразить 3 из этих событий.

У меня есть цикл, который работает с моим порядком сортировки, и я могу ограничить его до 3, используя это:

 $loop = new WP_Query( array( 'post_type' => 'veranstaltungen', 'posts_per_page' => '3', 'orderby' => 'meta_key', 'order' => 'ASC', 'key' => 'start-datum', ) ); 

Появляются события прошлого.

Следующие 3 события в соответствии с пользовательским полем start-datum – это те, которые должны появиться.

Я добавил эту if-logic:

 while( $link->have_posts() ) : $link->the_post(); if( date( 'md,Y',strtotime( "today" ) ) <= types_render_field( 'end-datum', array( 'format' => 'md, Y' ) ) ) { ... 

Это работает, но The Loop учитывает «устаревшие сообщения» и закручивает мою posts_per_page .

Если мы думаем о сегодняшнем дне, и у меня есть 2 события в прошлом, я просто увижу 1 Событие.

Как я могу исправить эту проблему?


Я попытался сделать это вместо условного и попытался исключить мои сообщения в The Loop, но это не сработало. Он просто сортирует мои сообщения и печатает все:

 $loop = new WP_Query( array( 'post_type' => 'veranstaltungen', 'posts_per_page'=> '3', 'orderby' => 'meta_key', 'order' => 'ASC', 'key' => 'end-datum', 'value' => date( 'F j,Y',strtotime( "today" ) ), 'compare' => '>=', 'type' => 'DATE', ) ); 

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

 $today = date('Ymd'); $args=array( 'post_type' => 'veranstaltungen', 'posts_per_page' => 3, 'meta_query' => array( array( 'key' => 'ende', 'compare' => '>=', 'value' => $today, ), ), 'meta_key' => 'start', 'orderby' => 'meta_value', 'order' => 'ASC', ); $loop = new WP_Query($args); ?> <?php while ( $loop->have_posts() ) : $loop->the_post(); 

Спасибо всем, кто пытается помочь! 🙂