Я использую этот короткий код для отображения продуктов на одной странице. но когда мы используем это, то это не показывает разбиение на страницы. потому что у нас так много продуктов в нашей категории.
мы используем следующий код:
[product_category category="snowpeak" per_page="12" columns="4" orderby="date" order="desc"]
Вы можете проголосовать за эту функцию, которая была реализована в коротком коде WooCommerce здесь: http://ideas.woothemes.com/forums/133476-woocommerce/suggestions/4146798-add-pagination-support-for-list-of-products-render
В противном случае вы можете создать настраиваемый цикл продуктов ( http://docs.woothemes.com/document/sample-products-loop/ ) и добавить настраиваемый аргумент в WP_Query для разбивки на страницы:
например.
<ul class="products"> <?php global $paged; $paged = ( get_query_var('page') ) ? get_query_var('page') : 1; $args = array( 'post_type' => 'product', 'posts_per_page' => 4, 'paged' => $paged ); $loop = new WP_Query( $args ); if ( $loop->have_posts() ) { while ( $loop->have_posts() ) : $loop->the_post(); woocommerce_get_template_part( 'content', 'product' ); endwhile; } else { echo __( 'No products found' ); } ?> <nav> <ul> <li><?php previous_posts_link( '« PREV', $loop->max_num_pages) ?></li> <li><?php next_posts_link( 'NEXT »', $loop->max_num_pages) ?></li> </ul> </nav> <?php wp_reset_postdata(); ?> </ul><!--/.products-->
Вы можете использовать одну и ту же страницу на странице продукта, которую вы использовали на странице. Для примера
Добавьте следующий код в файл functions.php
function custom_pagination() { global $wp_query; $big = 999999999; $pages = paginate_links(array( 'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 'format' => '?page=%#%', 'current' => max(1, get_query_var('paged')), 'total' => $wp_query->max_num_pages, 'prev_next' => false, 'type' => 'array', 'prev_next' => TRUE, 'prev_text' => '← Previous', 'next_text' => 'Next →', )); if (is_array($pages)) { $current_page = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged'); echo '<ul class="pagination">'; foreach ($pages as $i => $page) { if ($current_page == 1 && $i == 0) { echo "<li class='active'>$page</li>"; } else { if ($current_page != 1 && $current_page == $i) { echo "<li class='active'>$page</li>"; } else { echo "<li>$page</li>"; } } } echo '</ul>'; } }
Следующий шаг – вызвать функцию, на странице сообщения или продукта, чтобы выполнить задание на страницы
Пример wp_query
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $wp_query = new WP_Query("category_name='prayer'&paged=$paged&posts_per_page=12"); ?> <?php if ( $wp_query->have_posts() ) : ?> <!-- the loop --> <?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?> <?php get_template_part('prayer-loop'); ?> <?php endwhile; ?> <!-- end of the loop --> <div class="row" style="clear: both;"> <?php custom_pagination(); ?> </div> <?php wp_reset_postdata(); ?> <?php else : ?> <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p> <?php endif; ?>
Эта разбивка на страницы сильно изменится, если вы добавите загрузочный лоток на свой сайт.
<ul class="products"> <?php global $paged; $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; $args = array( 'post_type' => 'product', 'posts_per_page' => 4, 'paged' => $paged ); $loop = new WP_Query( $args ); if ( $loop->have_posts() ) { while ( $loop->have_posts() ) : $loop->the_post(); woocommerce_get_template_part( 'content', 'product' ); endwhile; } else { echo __( 'No products found' ); } ?> <nav> <ul> <li><?php previous_posts_link( '« PREV', $loop->max_num_pages) ?></li> <li><?php next_posts_link( 'NEXT »', $loop->max_num_pages) ?></li> </ul> </nav> <?php wp_reset_postdata(); ?> </ul><!--/.products-->