Проблема с сортировкой постов по дате из двух разных настраиваемых полей - PullRequest
0 голосов
/ 17 апреля 2019

Эй, у меня проблема с сортировкой пользовательских сообщений в галерее.

Я создал свою галерею CPT и свое событие CPT.

Галерея имеет поле ACF «дата» и поле с именем «related_event».Событие имеет поле ACF 'start_event_date'.

Некоторые галереи связаны с Событиями, но некоторые - нет.

Если у галереи есть связь с Событием, дата галереи - это дата события (настраиваемое поле - 'start_event_date'), но если галерея не имеет отношениязначение даты равно значению собственного настраиваемого поля 'дата'.

Я не представляю, как можно связать значения дат и отсортировать их по ним.

Пожалуйста, дайте мне какой-либо совет или подтверждениеРешение моей проблемы.

<?php 
                        $argsGallery = array(
                            'post_type' => 'galeria',
                            'posts_per_page' => 6,
                            // 'meta_key' => 'date',
                            // 'orderby' => 'meta_value',
                            // 'order' => 'DESC'
                        );
                        $theGalleryPosts = new WP_Query($argsGallery);

                        while($theGalleryPosts->have_posts()){
                            $theGalleryPosts->the_post();
                            $title = get_the_title();
                            $mainPhoto = get_field('main_photo');
                            $date= get_field('date');
                            $relatedEvent = get_field('related_event');

                            if($relatedEvent){
                                foreach($relatedEvent as $event){
                                    $EventsID = array();
                                    $argsEvents = array(
                                        'post_type' => 'wydarzenie',
                                        'posts_per_page' => -1,
                                    );
                                    $theEventsPosts = new WP_Query($argsEvents);
                                    if ( $theEventsPosts->have_posts() ) {
                                        while($theEventsPosts->have_posts()){
                                            $theEventsPosts->the_post();
                                            if($event->ID == get_the_ID()){
                                                $startEventDate = get_field('start_event_date');

                                            }
                                        }
                                    }
                                }
                            }
                            ?>


                            <div class="gallery__card">
                                <img class="gallery__card-img" src="<?php echo $mainPhoto['url'] ?>">
                                <div class="gallery__card-info">
                                    <p class="gallery__card-title"><?php echo $title;?></p>
                                    <?php
                                    if ($relatedEvent){ ?>
                                        <p class="gallery__card-date"><?php echo $startEventDate ?></p>
                                    <?php } else{ ?>
                                    <p class="gallery__card-date"><?php echo $date; ?></p>
                                    <?php } ?>
                                </div>
                            </div>

                        <?php
                        }wp_reset_postdata();
                        ?>
...