Make WordPress Core

Changeset 3277


Ignore:
Timestamp:
12/07/2005 07:02:05 PM (20 years ago)
Author:
ryan
Message:

Make page slugs unique. Props skeltoac. fixes #2034

File:
1 edited

Legend:

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

    r3267 r3277  
    9999        $post_password = '';
    100100
    101     if ('publish' == $post_status) {
    102         $post_name_check = $wpdb->get_var("SELECT post_name FROM $wpdb->posts WHERE post_name = '$post_name' AND post_status = 'publish' AND ID != '$post_ID' LIMIT 1");
     101    if ( ('publish' == $post_status) || ('static' == $post_status) ) {
     102        $post_name_check = ('publish' == $post_status)
     103            ? $wpdb->get_var("SELECT post_name FROM $wpdb->posts WHERE post_name = '$post_name' AND post_status = 'publish' AND ID != '$post_ID' LIMIT 1")
     104            : $wpdb->get_var("SELECT post_name FROM $wpdb->posts WHERE post_name = '$post_name' AND post_status = 'static' AND ID != '$post_ID' AND post_parent = '$post_parent' LIMIT 1");
     105
    103106        if ($post_name_check) {
    104107            $suffix = 2;
    105108            while ($post_name_check) {
    106109                $alt_post_name = $post_name . "-$suffix";
    107                 $post_name_check = $wpdb->get_var("SELECT post_name FROM $wpdb->posts WHERE post_name = '$alt_post_name' AND post_status = 'publish' AND ID != '$post_ID' LIMIT 1");
     110                $post_name_check = ('publish' == $post_status)
     111                    ? $wpdb->get_var("SELECT post_name FROM $wpdb->posts WHERE post_name = '$alt_post_name' AND post_status = 'publish' AND ID != '$post_ID' LIMIT 1")
     112                    : $wpdb->get_var("SELECT post_name FROM $wpdb->posts WHERE post_name = '$alt_post_name' AND post_status = 'static' AND ID != '$post_ID' AND post_parent = '$post_parent' LIMIT 1");
    108113                $suffix++;
    109114            }
Note: See TracChangeset for help on using the changeset viewer.