Я решил эту проблему, создав фильтр для встроенных в WP правил канонического перенаправления.
Это функция фильтра:
function disable_paged_canonical_redirect($redirect_url, $requested_url){
// Retrieve paged var from $_GET request
$page_num = (int)filter_input(INPUT_GET, 'paged');
// Check if there is a canonical '/page/X' part in the URL.
$canonical_paged = preg_match('/\/page\/[0-9]+/i', $redirect_url);
// If paged var is in GET vars and WP created canonical redirect for it, then revert this change.
if( $canonical_paged && $page_num ){
// Remove page part from canonical URL
$redirect_url = preg_replace('/\/page\/[0-9]+/i','', $redirect_url);
// Add paged var to URL arguments
$redirect_url .= '&paged='.$page_num;
}
return $redirect_url;
}
add_filter('redirect_canonical','disable_paged_canonical_redirect', 10, 2);