У меня есть WP-запрос, который должен отображать до 20 сообщений о будущих событиях. Сообщения должны быть только из пост-формата в стороне и должны быть упорядочены по дате. Эта часть работает довольно хорошо. Что не работает, то есть исключить события, которые уже прошли. (‘Compare’ => ‘> =’, или ‘meta_compare’ => ‘> =’, не работает. :() Может кто-нибудь сказать мне, где моя ошибка?
Большое спасибо!
Рабо
Вот мой код:
<?php
$current_month = "";
setlocale(LC_ALL, 'de_DE@euro'); // Monatsnamen auf Deutsch ausgeben
$args = array( 'showposts' => 20,
'cat' => array
(1,2,7,8,9
),
'meta_key' => 'datumsfeld',
'orderby' => 'meta_value',
'compare' => '>=',
'tax_query' => array(
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => 'post-format-aside',
)
)
);
$myQuery = new WP_Query( $args );
while ($myQuery->have_posts()) : $myQuery->the_post();
$datefield = DateTime::createFromFormat('Ymd', get_field('datumsfeld'));
if($datefield){
$month = $datefield->format("m");
$year = $datefield->format("Y");
if($month != $current_month){
echo '<div class="abstand"><strong>'.strftime("%B %Y",$datefield->getTimestamp()).'</div></strong>';
$current_month = $month;
}
}
?>
Как насчет добавления мета-запроса, чтобы исключить нежелательные сообщения? Используемый вами meta_key предназначен только для правильного размещения сообщений.
Что-то вроде:
$args = array( 'showposts' => 20,
'cat' => array (1,2,7,8,9),
'meta_key' => 'datumsfeld',
'orderby' => 'meta_value',
'compare' => '>=',
'tax_query' => array(
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => 'post-format-aside',
)
),
'meta_query' => array(
array(
'key' => 'datumsfeld',
'value' => '...' /* something like today */,
'compare' => '>=',
),
),
);
Других решений пока нет …