Как добавить результаты в wp-запрос с нумерацией страниц? - PullRequest
2 голосов
/ 09 июля 2019

Я пытаюсь добавить результаты с разбивкой на страницы к основным результатам запроса с помощью пользовательских аргументов.Но проблема в том, что я получаю второй результат цикла на каждой странице пагинации.Цель состоит в том, чтобы добавить их в конец списка (последние страницы нумерации страниц).Например: - Первый цикл получает 99 результатов и 10 страниц разбиения на страницы - Второй цикл получает 21 результат и отображается в списке от 100 до 120, начиная с 10 страницы разбиения на страницы до 12.

<div class="property-listing <?php echo esc_attr($listing_view_class); ?>">
                <div class="row">

                    <?php


                    global $wp_query;




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

                    $sort_args = houzez_prop_sort($sort_args);


                    $args = array_merge( $wp_query->query_vars, $sort_args );


                    query_posts( $args );

                    if ( have_posts() ) :
                        while ( have_posts() ) : 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_postdata();
                    else:
                        ?>
                        <h4><?php esc_html_e('Sorry No Result Found', 'houzez') ?></h4>
                        <?php
                    endif;
                    ?>

                </div>
            </div>





        <hr>

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

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

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

<code> <?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 "
"; 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 ($ перечисление_view == 'листинг-style-3 ') {get_template_part (' template-parts / property-for-list-v3 ');} еще если ($ перечисление_view ==' объявление-стиль-2 '|| $ перечисление-view ==' объявление-стиль-2-grid-view '|| $ list_view ==' list-style-2-grid-view-3-col ') {get_template_part (' template-parts / property-for-list ',' v2 ');} еще{get_template_part ('template-parts / property-for-list');} endween; wp_reset_query (); else:?>


max_num_pages, $ range = 2);?>

Но проблема в том, что я получаю эти результаты на каждой странице 15 результатов первого запроса + 15 результатов второго.И моя цель - получить ВСЕ результаты первого запроса (например, 150) - это будет 10 ссылок на страницы, а затем отобразить результат второго запроса с 11 страницы и т. Д.

0 голосов
/ 10 июля 2019

Используйте это, чтобы получить нумерацию страниц (50 на страницу). Это будет работать на 100%. Измените параметры в соответствии с результатом

 $the_query = new WP_Query( array('posts_per_page'=>50,
    'post_type'=>'Post Type name',
     'paged' => get_query_var('paged') ? get_query_var('paged') : 1) ); 

      <!-- --loop -->
      while ($the_query -> have_posts()) : $the_query -> the_post();  

       the_title();

       endwhile;
       <!-- ---loop -->

    <!-- -----For Pagenation -->
       $big = 999999999; // need an unlikely integer
        echo paginate_links( array(
        'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
        'format' => '?paged=%#%',
        'current' => max( 1, get_query_var('paged') ),
        'total' => $the_query->max_num_pages
    ) );
    <!-- -----For Pagenation -->

    wp_reset_postdata();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...