Wp Query - как получить общий список из 2 проходов?

122
27 марта 2021, 20:20

Получаю результаты в виде постов в 2 прохода следующим образом

 <?php

                global $wp_query, $paged;
                if ( is_front_page()  ) {
                    $paged = (get_query_var('page')) ? get_query_var('page') : 1;
                }

                $sort_args1 = array(
                    'posts_per_page' => $number_of_prop,
                    'paged' => $paged,
                    'tax_query' => array(
                        array(
                            'taxonomy' => 'property_status',
                            'field'    => 'id',
                            'terms'    => '228',
                            'operator' => 'NOT IN'
                        ),
                    ),
                    'order' => 'DESC',
                    'post_status' => 'publish'
                );
                $sort_args2 = array(
                    'posts_per_page' => $number_of_prop,
                    'paged' => $paged,
                    'tax_query' => array(
                        array(
                            'taxonomy' => 'property_status',
                            'field'    => 'id',
                            'terms'    => '228'
                        ),
                    ),
                    'order' => 'DESC',
                    'post_status' => 'publish'
                );
                $sort_args1 = apply_filters( 'houzez_property_filter', $sort_args1 );
                $sort_args2 = apply_filters( 'houzez_property_filter', $sort_args2 );
                $sort_args1 = houzez_prop_sort($sort_args1);
                $sort_args2 = houzez_prop_sort($sort_args2);

                $args1 = array_merge( $wp_query->query_vars, $sort_args1 );
                $args2 = array_merge( $wp_query->query_vars, $sort_args2 );
                //setup your queries as you already do
                $query1 = new WP_Query($args1);
                $query2 = new WP_Query($args2);



                /*echo "<pre>";
                print_r($args);
                echo "</pre>";
                die();*/

                $wp_query = new WP_Query($wp_query->query_vars);

                $wp_query->posts = array_merge( $query1->posts, $query2->posts );
                $wp_query->post_count = $query1->post_count + $query2->post_count;
                //$wp_query = apply_filters( 'houzez_property_filter', $wp_query->posts );
                //$wp_query = houzez_prop_sort($wp_query);


                if ( $wp_query->have_posts() ) :
                while ( $wp_query->have_posts() ) : $wp_query->the_post();
                        if($listing_view == 'listing-style-3') {
                            get_template_part('template-parts/property-for-listing-v3');
                        } else if($listing_view == 'listing-style-2' || $listing_view == 'listing-style-2-grid-view' || $listing_view == 'listing-style-2-grid-view-3-col') {
                            get_template_part('template-parts/property-for-listing', 'v2');
                        } else {
                            get_template_part('template-parts/property-for-listing');
                        }
                    endwhile;

                    wp_reset_query();
                else:
                    ?>
                    <h4><?php esc_html_e('Sorry No Result Found', 'houzez') ?></h4>
                    <?php
                endif;
                ?>
            </div>
        </div>
        <!--end property items-->


        <hr>
        <!--start Pagination-->
        <?php houzez_pagination( $wp_query->max_num_pages, $range = 2 ); ?>

Но проблема в том, что при выводе у меня отображаются результаты с обоих проходов - 30 результатов (15 с первого прохода + 15 со второго прохода). Я же хочу пытаюсь получить все результаты с первого прохода, а в конец добавить результаты со второго прохода. Таким образом, получить, например, 150 результатов с первого прохода и вывести на первых 10 страниц пейджингов, а затем (начиная с 11 страницы пейджинга и т.д.) вывести результаты второго прохода.

READ ALSO
Парсер kml файлов на php

Парсер kml файлов на php

Ребят, всем привет, помогите

129
Ошибка в коде PHP при работе с PDO

Ошибка в коде PHP при работе с PDO

Имеется следующий код:

215
сделать TimeOut на запрос FireBase

сделать TimeOut на запрос FireBase

Собственно надо обработать ошибку соединенияПропала сеть итд

381