Как вариант, можно перенаправить ссылки первого варианта на второй с кодом 301 (permanent redirect) — поисковые системы его понимают. Или необходимо всё же изменить вид?
Да, это очень желательно, потому что индексация и вес страниц при перенаправлении будут потеряны…
1. Код 301 как раз помогает сделать так, чтобы этого не произошло.
2. Можно добавить фрагмент в functions.php активной темы:
function my_paged_links($string, $type_of_url) {
if ( $type_of_url == 'paged' && is_category() ) {
$string = str_replace('/', '_', $string) . '.mgr';
}
return $string;
}
add_filter('user_trailingslashit', 'my_paged_links', 10, 2);
function my_pagenum_link($link) {
if ( $_SERVER['REQUEST_URI'] != '/' ) {
preg_match('/\/page_[0-9]+\.mgr/', $_SERVER['REQUEST_URI'], $matches);
if ( !empty($matches) ) {
$link = str_replace($matches[0], '', $link);
}
}
return $link;
}
add_filter('get_pagenum_link', 'my_pagenum_link');
function my_paged_links_add_rewrite_rules($wp_rewrite) {
if ( empty($wp_rewrite->category_base) )
$root = $wp_rewrite->front . 'category';
else
$root = $wp_rewrite->root . $wp_rewrite->category_base;
$new_rules = array(
trim($root, '/') . '/(.+?)/page_([0-9]+)\.mgr?$' => 'index.php?category_name=$matches[1]&paged=$matches[2]'
);
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action('generate_rewrite_rules', 'my_paged_links_add_rewrite_rules');
function my_paged_links_flush_rewrite_rules() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_action('init', 'my_paged_links_flush_rewrite_rules');