Поддержка WooCommerce не выводится паинация

  • Никак не могу вывести пагинацию. Создаю шаблон страницы где вывожу последние товары

    
      <?php
        $args = array(
           'post_type' => 'product',
           'posts_per_page' => 4,
           'orderby' => 'publish_date',
           'tax_query'     => array( array(
                'taxonomy'  => 'product_cat',
                'field'     => 'term_id',
                'terms'     => array( 37,40,35,32 ),
                'operator'  => 'NOT IN',
            ) ),
          );
        $loop = new WP_Query( $args );
        if ( $loop->have_posts() ) { ?>
        <ul class="products columns-4">
        <?php while ( $loop->have_posts() ) : $loop->the_post();
            wc_get_template_part( 'content', 'product' );
          endwhile; ?>
         </ul><!--/.products-->
    	<?php wp_pagenavi();?>
    
        <?php } else {
          echo __( 'Продуктов не найдено' );
        }
    	
      ?>
    

    что только не делал, ума не приложу…

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • А с чего бы выводиться пагинации, если это просто страница?

    Функция paginate_links() с параметрами, полученными от $loop, поможет вывести ссылки. Но их потом еще надо будет обработать.

    Никак не могу вывести пагинацию. Создаю шаблон страницы где вывожу последние товары

    Вместо изобретения велосипеда можно использовать штатные шорткоды WooCommerce. Они работают с пагинацией

    Вместо изобретения велосипеда можно использовать штатные шорткоды WooCommerce. Они работают с пагинацией

    [recent_products limit=»4″ columns=»4″ paginate=»true»]

    нету никакой пагинации если так прописать…

    • Ответ изменён 1 месяц, 3 недели назад пользователем face2005.

    А если так:

    
    <?php
    	$current_page = get_query_var( 'paged' );
    	if( $current_page == 0 ) { $current_page = 1; }
        $args = array(
           'post_type' => 'product',
           'posts_per_page' => 4,
           'orderby' => 'publish_date',
           'tax_query'     => array( array(
                'taxonomy'  => 'product_cat',
                'field'     => 'term_id',
                'terms'     => array( 37,40,35,32 ),
                'operator'  => 'NOT IN',
            ) ),
          );
        $loop = new WP_Query( $args );
        if ( $loop->have_posts() ) { ?>
        <ul class="products columns-4">
        <?php while ( $loop->have_posts() ) : $loop->the_post();
            wc_get_template_part( 'content', 'product' );
          endwhile; ?>
         </ul><!--/.products-->
    	<?php // wp_pagenavi();?>
    	<?php
    	$args = array(
    		'current' => $current_page,
    		'total' => $loop->max_num_pages
    	);
    	the_post_pagination( $args );
    	?>
    
        <?php } else {
          echo __( 'Продуктов не найдено' );
        }
    	
      ?>
    
    

    [recent_products limit=»4″ columns=»4″ paginate=»true»]
    нету никакой пагинации если так прописать…

    Вы ограничили вывод 4-мя товарами. И аргументы задали не правильно.

    [recent_products per_page="12" columns="4" paginate=true]

Просмотр 5 ответов — с 1 по 5 (всего 5)