Восстановить slug-и записей

Скрипт Сергея Бирюкова.
Сохранить в php-файл и выполнить из браузера:

[php]
<?php
require ‘wp-load.php’;

$cyr2lat_enabled = false;
if ( function_exists(‘ctl_sanitize_title’) ) {
remove_filter(‘sanitize_title’, ‘ctl_sanitize_title’, 9);
$cyr2lat_enabled = true;
}

echo "Regenerating post slugs…<br />n";
$posts = $wpdb->get_results("SELECT ID, post_title, post_name FROM {$wpdb->posts} WHERE post_status = ‘publish’");
foreach ( (array) $posts as $post ) {
$original_name = sanitize_title($post->post_title);
$sanitized_name = $cyr2lat_enabled ? ctl_sanitize_title( urldecode($original_name) ) : »;
if ( $post->post_name == $sanitized_name || empty($sanitized_name) ) {
delete_post_meta($post->ID, ‘_wp_old_slug’, $original_name);
$wpdb->update( $wpdb->posts, array( ‘post_name’ => $original_name ), array( ‘ID’ => $post->ID ) );
}
}

echo "Regenerating term slugs…<br />n";
$terms = $wpdb->get_results("SELECT term_id, name, slug FROM {$wpdb->terms}");
foreach ( (array) $terms as $term ) {
$original_slug = sanitize_title($term->name);
$sanitized_slug = $cyr2lat_enabled ? ctl_sanitize_title( urldecode($original_slug) ) : »;
if ( $term->slug == $sanitized_slug || empty($sanitized_slug) ) {
$wpdb->update( $wpdb->terms, array( ‘slug’ => $original_slug ), array( ‘term_id’ => $term->term_id ) );
}
}

echo ‘All done!’;
?>
[/php]

Отмечено

Добавить комментарий

Please log in using one of these methods to post your comment:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s