Манипулировать запросом по умолчанию не работает должным образом в WordPress - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь манипулировать запросом по умолчанию на моей странице archive-event. php. То, что я хочу запросить, это упорядочить события (мои собственные сообщения) по ближайшему событию (на основе его даты). Это мой код в функциях. php:

function university_adjust_queries ($query) { 
if(!is_admin() && is_post_type_archive('event') && $query->is_main_query()) {
$today = date('Ymd');

$query->set('meta_key','event_date');
    $query->set('orderby','meta_value_num');
    $query->set('order','ASC');

$query->set('meta_query', array(
        array(
            'key'     => 'event_date',
            'compare' => '>=',
            'value'   => $today,
            'type' => 'numeric'
        ),
    ),);

}
}

add_action('pre_get_posts','university_adjust_queries');

, и это мой код в archive-event. php:

while ( have_posts() ) {

the_post();
        ?>
        <div class="event-summary">
            <a class="event-summary__date t-center" href="#">
                        <span class="event-summary__month">
                            <?php
                            try {
                                $event_Date = get_field( 'event_date' );
                                $event_Date = date( 'Y-m-d', strtotime( $event_Date));
                                $eventDate = new DateTime($event_Date);
                            } catch ( Exception $e ) {
                                echo 'error happened';
                            }
                         echo $eventDate->format( 'M' );
                            ?></span>
                <span class="event-summary__day"><?php
                  echo $eventDate->format('d');
                    ?></span>
            </a>

...

Но проблема даже в разных датах, которые мои события имеют в моей панели администратора, их даты отображаются совершенно неверно (некоторые дубликаты!)

Это изображение страницы моего архива-события:

enter image description here

1 Ответ

0 голосов
/ 28 февраля 2020

Вы пытались изменить тип мета-запроса на DATE?

$query->set('meta_query', array(
        array(
            'key'     => 'event_date',
            'compare' => '>=',
            'value'   => $today,
            'type' => 'DATE'
        ),
    ),);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...