Добавить разбивку на страницы в блог

Я хочу ограничить 3 фрагмента блога на странице и включить разбивку на страницы для дополнительных страниц. Вот что я до сих пор, но разбиение на страницы не работает.

<div id="page-content"> <?php $args = array( 'posts_per_page' =>3, 'order'=> 'ASC', 'orderby' => 'title' ); $postslist = get_posts( $args ); foreach ( $postslist as $post ) : setup_postdata( $post ); ?> <div> <a href="<?php the_permalink(); ?>"><?php the_title(); ?> </a><br /> <small><?php the_time('F jS, Y') ?> by <?php the_author(); ?></small> <?php the_excerpt(); ?><br /> </div> <?php endforeach; wp_reset_postdata();?> </div> <?php posts_nav_link( $sep, $prelabel, $nextlabel ); ?> <?php posts_nav_link(); ?> <div class="navigation"> <div class="alignleft"><?php posts_nav_link('','','&laquo; Previous Entries') ?></div> <div class="alignright"><?php posts_nav_link('','Next Entries &raquo;','') ?></div> </div> <!--#page-content--> 

Сладкие и короткие, не используйте get_posts если вам нужны разбитые запросы. get_posts отлично работает, если вы собираетесь использовать пользовательский запрос, который не нуждается в разбивке на страницы, но на самом деле это становится сложной проблемой, когда вам нужно вводить разбивку на страницы.

Я думаю, что наиболее простым и наиболее подходящим здесь является использование WP_Query для создания настраиваемого запроса, то есть если вы не можете использовать pre_get_posts для изменения основного запроса, чтобы получить желаемый результат из основного запроса.

Кроме того, эти две строки не нужны, вы должны удалить эти

 <?php posts_nav_link( $sep, $prelabel, $nextlabel ); ?> <?php posts_nav_link(); ?> 

Я думаю, что next_posts_link() и previous_posts_link() лучше использовать с пользовательским запросом, то есть с WP_Query . Однако вы должны просто запомнить параметр $max_pages когда используете пользовательский запрос, иначе постраничная разбивка на страницы

С небольшими изменениями ваш запрос должен выглядеть так:

 <div id="page-content"> <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'posts_per_page' =>3, 'order'=> 'ASC', 'orderby' => 'title', 'paged' => $paged ); $postslist = new WP_Query( $args ); if ( $postslist->have_posts() ) : while ( $postslist->have_posts() ) : $postslist->the_post(); ?> <div> <a href="<?php the_permalink(); ?>"><?php the_title(); ?> </a><br /> <small><?php the_time('F jS, Y') ?> by <?php the_author(); ?></small> <?php the_excerpt(); ?><br /> </div> <?php endwhile; ?> <div class="navigation"> <div class="alignleft"><?php next_posts_link( '&laquo; Previous Entries', $postslist->max_num_pages ); ?></div> <div class="alignright"><?php previous_posts_link( 'Next Entries &raquo;' ); ?></div> </div> <?php wp_reset_postdata(); endif; ?> </div>