使博客分页在设置为首页的页面上工作

时间:2022-02-20 作者:Waterfall

据我所知,如果页面是首页(使用FrontPage.php),那么您将使用get_query_var(\'page\') 对于其他页面,您将使用get_query_var(\'paged\'). 我对此有一个条件,分页在一定程度上起作用。如果我点击;下一个“;它显示了下一组记录,但在主页上,分页本身没有改变,即:在第2页上,数字2没有突出显示,“上一页”按钮没有像其他页面上那样出现。

if( is_front_page() ) {
    $paged = (get_query_var(\'page\')) ? get_query_var(\'page\') : 1;
}else {
    $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
}

$args = array(
    \'posts_per_page\' => 12,
    \'post_status\' => \'publish\',
    \'paged\' => $paged,
);

$all_posts = new WP_Query($args);


 <?php while ($all_posts->have_posts() ): $all_posts->the_post(); ?>
    display post title, date etc. here
 <?php endwhile; wp_reset_postdata();?>
 
<div class="pagination">
    <?php
$big = 999999999;
echo paginate_links(
    array(
        \'prev_text\' => __( \'Previous\' ),
        \'next_text\' => __( \'Next\' ),
        \'base\' => str_replace($big, \'%#%\', esc_url( get_pagenum_link( $big ) ) ),
        \'format\' => \'?paged=%#%\',
        \'current\' => max(
            1,
            get_query_var(\'paged\')
        ),
        \'total\' => $all_posts->max_num_pages
    )
);
?>
</div>

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

是的,你是对的,在静态首页上,我们使用get_query_var(\'page\') 获取当前页码。

实际上,这个问题(数字2没有突出显示)因为你使用了get_query_var(\'paged\') (请注意paged) 使用current arg用于paginate_links(), 这意味着你打错了号码。

\'current\' => max(
    1,
    get_query_var(\'paged\')
),
所以你需要做的就是用\'current\' => $paged, 问题就会消失。

相关推荐

_POST_Pagination()在wpQuery中不起作用

我正在尝试为自定义wp\\U查询创建分页,下面是我的代码:<?php $btpgid=get_queried_object_id(); $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1; $args = array( \'cat\' => 1, \'posts_per_page\' => 6, &#