Внимание! Следующий код лучше сначала проверить на локалке или на копии сайта.
Как то так. В корне wordpress запустить в баше. Типа
php wp-reb.php<?php
if (empty($wp)) {
require_once('wp-config.php');
}
global $wpdb;
$posts = $wpdb->get_results(
"SELECT
p.ID, p.post_name
FROM
wp_posts p
WHERE
p.post_type = 'post' AND p.post_status = 'publish'");
$double = array();
$rewrite = array();
foreach($posts as $post){
if (!array_key_exists($post->post_name,$double)){
$double[$post->post_name] = 0;
}else{
$double[$post->post_name] += 1;
$rewrite[$post->ID] = $post->post_name . "-" . $double[$post->post_name];
}
}
foreach($rewrite as $key => $value){
$wpdb->update( 'wp_posts',
array( 'post_name' => $value ),
array( 'ID' => $key )
);
}