Php 修复Wordpress 5.5更新后的分页

Php 修复Wordpress 5.5更新后的分页,php,wordpress,Php,Wordpress,在将我的网站更新到Wordpress 5.5后,分页中断 如果example.com/news/是我网站的新闻页面,那么接下来的example.com/news/2/(在更新之前打开了第二页帖子)会将我重定向到example.com/news/ 它是5.5更新的一部分,但我没有通过更改变量的名称来修复它 以下是我如何在我的网站上使用分页: 查询部分: $page = ( get_query_var( 'page' ) ) ? get_query_var( 'page' ) : 1; $query

在将我的网站更新到Wordpress 5.5后,分页中断

如果example.com/news/是我网站的新闻页面,那么接下来的example.com/news/2/(在更新之前打开了第二页帖子)会将我重定向到example.com/news/

它是5.5更新的一部分,但我没有通过更改变量的名称来修复它

以下是我如何在我的网站上使用分页:

查询部分:

$page = ( get_query_var( 'page' ) ) ? get_query_var( 'page' ) : 1;
$query = new WP_Query( array(
   'posts_per_page' => 5,
   'paged' => $page
   ));
if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();
echo paginate_links( array (
   'base' => get_permalink( get_option( 'page_for_posts' ) ) . '%_%',
   'total' => $query->max_num_pages,
   'current' => max( 1, get_query_var( 'page' ) ),
   'format' => '%#%',
   'show_all' => false,
   'type' => 'plain',
   'end_size' => 2,
   'mid_size' => 1,
   'prev_next' => true,
   'prev_text' => '←',
   'next_text' => '→',
   'add_args' => false,
   'add_fragment' => '',
));

wp_reset_postdata();
分页部分:

$page = ( get_query_var( 'page' ) ) ? get_query_var( 'page' ) : 1;
$query = new WP_Query( array(
   'posts_per_page' => 5,
   'paged' => $page
   ));
if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();
echo paginate_links( array (
   'base' => get_permalink( get_option( 'page_for_posts' ) ) . '%_%',
   'total' => $query->max_num_pages,
   'current' => max( 1, get_query_var( 'page' ) ),
   'format' => '%#%',
   'show_all' => false,
   'type' => 'plain',
   'end_size' => 2,
   'mid_size' => 1,
   'prev_next' => true,
   'prev_text' => '←',
   'next_text' => '→',
   'add_args' => false,
   'add_fragment' => '',
));

wp_reset_postdata();
使用以下任一选项:

remove_filter('template_redirect', 'redirect_canonical');

remove_action('template_redirect', 'redirect_canonical');

在example.com/news/2/

临时修复程序中导致404错误,而不触及核心:通过主题函数中的过滤器
pre_handle_404;
禁用分页URL的404处理。php:

function pre_handle_404($preempt, $wp_query)
{
    if (isset($wp_query->query['page']) && $wp_query->query['page']) {
        return true;
    }

    return $preempt;
}
add_filter( 'pre_handle_404', 'pre_handle_404', 10, 2 );

谢谢!这对我有用!我应该将其标记为解决方案吗?