Advertisement
SergeyBiryukov

[Cyr-To-Lat] Restore Original Slugs

May 6th, 2011
647
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.27 KB | None | 0 0
  1. <?php
  2. require 'wp-load.php';
  3.  
  4. $cyr2lat_enabled = false;
  5. if ( function_exists('ctl_sanitize_title') ) {
  6.     remove_filter('sanitize_title', 'ctl_sanitize_title', 9);
  7.     $cyr2lat_enabled = true;
  8. }
  9.  
  10. echo "Regenerating post slugs...<br />\n";
  11. $posts = $wpdb->get_results("SELECT ID, post_title, post_name FROM {$wpdb->posts} WHERE post_status = 'publish'");
  12. foreach ( (array) $posts as $post ) {
  13.     $original_name = sanitize_title($post->post_title);
  14.     $sanitized_name = $cyr2lat_enabled ? ctl_sanitize_title( urldecode($original_name) ) : '';
  15.     if ( $post->post_name == $sanitized_name || empty($sanitized_name) ) {
  16.         delete_post_meta($post->ID, '_wp_old_slug', $original_name);
  17.         $wpdb->update( $wpdb->posts, array( 'post_name' => $original_name ), array( 'ID' => $post->ID ) );
  18.     }
  19. }
  20.  
  21. echo "Regenerating term slugs...<br />\n";
  22. $terms = $wpdb->get_results("SELECT term_id, name, slug FROM {$wpdb->terms}");
  23. foreach ( (array) $terms as $term ) {
  24.     $original_slug = sanitize_title($term->name);
  25.     $sanitized_slug = $cyr2lat_enabled ? ctl_sanitize_title( urldecode($original_slug) ) : '';
  26.     if ( $term->slug == $sanitized_slug || empty($sanitized_slug) ) {
  27.         $wpdb->update( $wpdb->terms, array( 'slug' => $original_slug ), array( 'term_id' => $term->term_id ) );
  28.     }
  29. }
  30.  
  31. echo 'All done!';
  32. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement