<?php // 获取当前页面的页数,函数的参数为 paged $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'post_type' => 'knowledgebase', 'post_status' => 'publish', 'author' => get_queried_object_id(), 'posts_per_page' => 10, 'paged'=> $paged, ); $the_query = new WP_Query( $args ); // 注意这里需要区别 global $wp_query while ($the_query -> have_posts()) : $the_query -> the_post(); ?> <?php get_template_part( 'content-author', 'knowledgebase' ); ?> <?php endwhile; ?> <!-- 分页 --> <nav class="navigation paging-navigation" role="navigation"> <div class="nav-links"> <?php if ( get_previous_posts_link() ) : ?> <p class="fleft"><?php previous_posts_link( __( '<span class="meta-nav">«</span>', 'drivereasy' ) ); ?></p> <?php endif; if ( $the_query->max_num_pages > 1 ) : ?> <p class="fleft"><?php printf( __('Page %s of %s', 'drivereasy'), $paged, $the_query->max_num_pages ); ?></p> <?php endif; ?> <?php if ( get_next_posts_link() ) : ?> <p class="fleft"><?php next_posts_link( __( '<span class="meta-nav">»</span>', 'drivereasy' ) ); ?></p> <?php endif; ?> </div><!-- .nav-links --> </nav><!-- .navigation -->
以上分页默认是根据 post 文章的数量进行分页,所以以上分页不准确,有些页面会打不开,必须在 function.php 加上以下代码才能正常分页
function author_custom_post($query) { if ( !is_admin() && $query->is_author() && $query->is_main_query() ) : $query->set('post_type', array('knowledgebase'));
$query->set('post_per_page', 10); // 每页显示的文章数量必须与author.php 中的保持一致 endif; } add_action('pre_get_posts', 'author_custom_post');
资料来源:https://forums.envato.com/t/custom-post-type-pagination-issue-in-author-template/106090/2