您好@Lukepnngtn,欢迎光临!为阅读做好准备。
既然你在做index.php
我们需要考虑以下文件中的内容Removing query_posts from the Main Loop 在分页法典中(link):
例如,假设您的主题在主页(index.php)和类别页面(category.php)上像这样查询主循环,并且分页不起作用。。。
您需要做的是删除WP_Query()
从index.php
在中归档并执行操作function.php
. 链接中逐拍地描述了它,但我也会将其粘贴到这里:
function my_post_queries( $query ) {
// do not alter the query on wp-admin pages and only alter it if it\'s the main query
if (!is_admin() && $query->is_main_query()){
// alter the query for the home and category pages
if(is_home()){
$query->set(\'posts_per_page\', 3);
}
if(is_category()){
$query->set(\'posts_per_page\', 3);
}
}
}
add_action( \'pre_get_posts\', \'my_post_queries\' );
之后我们需要回到
index.php
文件在这一点上,它应该是这样的:
while ( have_posts() ) :
the_post();
...
endwhile;
global $wp_query;
echo paginate_links( array(
\'base\' => str_replace( 999999999, \'%#%\', esc_url( get_pagenum_link( 999999999 ) ) ),
\'total\' => $wp_query->max_num_pages,
\'current\' => max( 1, get_query_var(\'paged\') ),
\'format\' => \'?paged=%#%\',
\'show_all\' => false,
\'type\' => \'plain\',
\'end_size\' => 2,
\'mid_size\' => 1,
\'prev_next\' => true,
\'prev_text\' => sprintf( \'<i></i> %1$s\', __( \'Newer Posts\', \'text-domain\' ) ),
\'next_text\' => sprintf( \'%1$s <i></i>\', __( \'Older Posts\', \'text-domain\' ) ),
\'add_args\' => false,
\'add_fragment\' => \'\',
) );
我进一步研究了你的代码,我还建议阅读WordPress的文档(
get_query_var()):
要获取静态首页(页面模板)上的当前页码,必须使用“page”查询变量。。。
经过进一步研究,我找到了这个答案(link) 关于另一个与WP相关的问题,内容如下:
分页->用于主页、博客页面、归档页面和页面上计算分页。第一页是0,从那里开始,数字对应于页码,用于静态首页和分页的单页。这些页面上的分页工作原理相同,静态首页在分页时被视为单个页面这是直接从文档中获得的(link):
如果静态首页上的分页被破坏,则必须以这种方式添加“paged”参数。。。
所以你在这里做的很好:
if ( get_query_var(\'paged\') ) {
$paged = get_query_var(\'paged\');
}
elseif ( get_query_var(\'page\') ) {
$paged = get_query_var(\'page\');
}
else {
$paged = 1;
}
我在
static page
使用自定义模板,直到我创建主页,然后您需要使用
$paged
的变量
current
中的参数
paginate_links()
打电话,像这样:
paginate_links( array(
...
\'current\' => max( 1, $paged ),
...
) );
我仍然不能在评论中提问,所以我希望我能有所帮助。祝你好运