Make WordPress Core


Ignore:
Timestamp:
12/10/2006 05:17:39 PM (19 years ago)
Author:
markjaquith
Message:

Move wp_check_for_changed_slugs() to post.php so it can be called in non-admin contexts. fixes #3461

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/post.php

    r4631 r4637  
    14241424}
    14251425
     1426function wp_check_for_changed_slugs($post_id) {
     1427    if ( !strlen($_POST['wp-old-slug']) )
     1428        return $post_id;
     1429
     1430    $post = &get_post($post_id);
     1431
     1432    // we're only concerned with published posts
     1433    if ( $post->post_status != 'publish' || $post->post_type != 'post' )
     1434        return $post_id;
     1435
     1436    // only bother if the slug has changed
     1437    if ( $post->post_name == $_POST['wp-old-slug'] )
     1438        return $post_id;
     1439
     1440    $old_slugs = (array) get_post_meta($post_id, '_wp_old_slug');
     1441
     1442    // if we haven't added this old slug before, add it now
     1443    if ( !count($old_slugs) || !in_array($_POST['wp-old-slug'], $old_slugs) )
     1444        add_post_meta($post_id, '_wp_old_slug', $_POST['wp-old-slug']);
     1445
     1446    // if the new slug was used previously, delete it from the list
     1447    if ( in_array($post->post_name, $old_slugs) )
     1448        delete_post_meta($post_id, '_wp_old_slug', $post->post_name);
     1449
     1450    return $post_id;
     1451}
     1452
    14261453?>
Note: See TracChangeset for help on using the changeset viewer.