Отображение сообщений по категориям из запроса с разбиением на страницы

avatar
lei
9 августа 2021 в 05:03
137
1
1

Можете ли вы сказать мне, в чем проблема с моим кодом? мой код должен отображать пользовательский пост по категориям. мой код отлично работает. но когда я помещаю нумерацию страниц, код теперь является ошибкой.

 <?php                    
                $ourteam_category_check = '4';
                $paged = (int) get_query_var('paged'); --> I inserted this
                $niche_ourteam_args = array(
                    'posts_per_page' => 10,
                    'paged' => $paged, --> I inserted this
                        'post_type' => 'shop',               
                        'orderby' => 'post_date',               
                        'order' => 'DESC',
                        'post_status' => 'publish',
                        'meta_query' => array(
                            array(
                                'key' => '_thumbnail_id',
                                'compare' => 'EXISTS'
                            ),
                        ),
                        'tax_query' => array(
                        array(
                            'taxonomy' => 'shop_cat',
                            'field' => 'term_id',
                            'terms'    => $ourteam_category_check
                        ),
                    ),
                );          

                    $niche_ourteam = new WP_Query($niche_ourteam_args);
                    while ($niche_ourteam->have_posts()) : $niche_ourteam->the_post();
            ?> 

--> вывести все элементы из категории 4 здесь

                    <?php endwhile; endif; ?>                    
                
                <div class="page-nav-area">
                  <?php
                    if( function_exists('wp_pagenavi') ) {
                      wp_pagenavi(array('query' => $the_query));
                    }
                  ?>
                </div> 
Источник

Ответы (1)

avatar
Full Stop
9 августа 2021 в 05:51
0

Попробуйте, этот код отлично работает на моей стороне

<?php if (have_posts()): while (have_posts()) : the_post(); ?>

<div class="the_loop">

  <?php        
    if ( get_query_var('paged') ) {
        $paged = get_query_var('paged');
    } elseif ( get_query_var('page') ) { // 'page' is used instead of 'paged' on Static Front Page
        $paged = get_query_var('page');
    } else {
        $paged = 1;
    }
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $loop = new WP_Query(
        array(
            'post_type' => 'shop',
            'posts_per_page' => get_option('posts_per_page'),     
            'paged' => $paged,
            'tax_query' => array(
                  array(
                        'taxonomy' => 'category',
                        'field'    => 'term_id',
                        'terms'    => $cat->cat_ID, // your categories or you can use 'category__in' => array(2,6)
                        ),
                    ),
        )
    );
  ?>

  <?php if ($loop->have_posts()): while ($loop->have_posts()) : $loop->the_post(); ?>

    // Loop code goes here.

  <?php endwhile; ?>

  <?php if ($loop->max_num_pages > 1) : // custom pagination  ?>
    <?php
      $orig_query = $wp_query; // fix for pagination to work
      $wp_query = $loop;
      $big = 999999999;
      echo paginate_links(array(
          'base' => str_replace($big, '%#%', get_pagenum_link($big)),
          'format' => '?paged=%#%',
          'current' => max(1, get_query_var('paged')),
          'total' => $wp_query->max_num_pages
      ));                  
      $wp_query = $orig_query; // fix for pagination to work
    ?>
  <?php endif; ?>

  <?php wp_reset_postdata(); else: echo '<p>'.__('Sorry, no posts matched your criteria.').'</p>'; endif; ?>  

</div>

<?php endwhile; ?>
<?php endif; ?>
lei
10 августа 2021 в 01:50
0

привет @Full Stop спасибо за ваше время и коды. Я попробовал ваши коды выше, но единственное правильное выполнение - это эхо "Извините, нет сообщений, соответствующих вашим критериям". элементы из запроса не отображаются.

Full Stop
10 августа 2021 в 04:35
0

пожалуйста, проверьте имя сообщения и идентификатор категории, который вы используете, это правильно, это не @lei