这是我的index.php循环:
<?php
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$query = new WP_Query( array( 'posts_per_page' => 3, 'paged' => $paged ) );
?>
<?php if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>
<article>
<h3><?php the_title(); ?></h3>
</article>
<?php endwhile; ?>
<?php if ( get_next_posts_link('Next', $query->max_num_pages)) : ?>
<nav class="navigation paging-navigation" role="navigation">
<?php echo get_next_posts_link( 'Next', $query->max_num_pages ); ?>
</nav>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
<?php else: ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
这很简单,但问题在于分页。在索引页面上,我有链接到第2页,当我点击它时,一切看起来都很好,但是当我在页面/ 2上并点击链接下一页进入页面/ 3我收到404错误。
我做错了什么?
答案 0 :(得分:1)
我找到了一个解决方案,对index.php来说并不难,但后来我注意到我的tag.php甚至没有显示第2页,所以我在那里做了一些改动以使其工作:
function my_post_count_queries( $query ) {
if (!is_admin() && $query->is_main_query()){
if(is_home()){ $query->set('posts_per_page', 1); }
if(is_tag()){
$query->set('post_type', array( 'product' ) );
$query->set('posts_per_page', 1);
}
}
}
add_action( 'pre_get_posts', 'my_post_count_queries' );
答案 1 :(得分:0)
请尝试在functions.php中添加此代码并再次检查分页
<?php
if ( ! function_exists('my_pagination')) :
function my_pagination() {
global $wp_query;
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages
) );
}
endif;
?>
在重置post meta
之前添加此代码 <div class="blog_pagination">
<?php my_pagination(); ?>
</div>
希望这项工作