Changeset 45893
- Timestamp:
- 08/26/2019 03:18:40 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/taxonomy.php
r45872 r45893 2746 2746 if ( $parent_suffix ) { 2747 2747 $slug .= $parent_suffix; 2748 } 2749 2750 if ( ! empty( $term->term_id ) ) { 2751 $query = $wpdb->prepare( "SELECT slug FROM $wpdb->terms WHERE slug = %s AND term_id != %d", $slug, $term->term_id ); 2748 2752 } else { 2749 if ( ! empty( $term->term_id ) ) { 2750 $query = $wpdb->prepare( "SELECT slug FROM $wpdb->terms WHERE slug = %s AND term_id != %d", $slug, $term->term_id ); 2751 } else { 2752 $query = $wpdb->prepare( "SELECT slug FROM $wpdb->terms WHERE slug = %s", $slug ); 2753 } 2754 2755 if ( $wpdb->get_var( $query ) ) { 2756 $num = 2; 2757 do { 2758 $alt_slug = $slug . "-$num"; 2759 $num++; 2760 $slug_check = $wpdb->get_var( $wpdb->prepare( "SELECT slug FROM $wpdb->terms WHERE slug = %s", $alt_slug ) ); 2761 } while ( $slug_check ); 2762 $slug = $alt_slug; 2763 } 2753 $query = $wpdb->prepare( "SELECT slug FROM $wpdb->terms WHERE slug = %s", $slug ); 2754 } 2755 2756 if ( $wpdb->get_var( $query ) ) { // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared 2757 $num = 2; 2758 do { 2759 $alt_slug = $slug . "-$num"; 2760 $num++; 2761 $slug_check = $wpdb->get_var( $wpdb->prepare( "SELECT slug FROM $wpdb->terms WHERE slug = %s", $alt_slug ) ); 2762 } while ( $slug_check ); 2763 $slug = $alt_slug; 2764 2764 } 2765 2765 } -
trunk/tests/phpunit/tests/term/wpUniqueTermSlug.php
r42343 r45893 128 128 $this->assertEquals( 'bar-2', $actual ); 129 129 } 130 131 /** 132 * @ticket 46431 133 */ 134 public function test_duplicate_parent_suffixed_slug_should_get_numeric_suffix() { 135 $t1 = self::factory()->term->create( 136 array( 137 'taxonomy' => 'wptests_tax2', 138 'name' => 'Animal', 139 'slug' => 'animal', 140 ) 141 ); 142 143 $t2 = self::factory()->term->create( 144 array( 145 'taxonomy' => 'wptests_tax2', 146 'name' => 'Dog', 147 'slug' => 'dog', 148 ) 149 ); 150 151 $t3 = self::factory()->term->create( 152 array( 153 'taxonomy' => 'wptests_tax2', 154 'name' => 'Cat', 155 'slug' => 'dog-animal', 156 'parent' => $t1, 157 ) 158 ); 159 160 $t4 = self::factory()->term->create( 161 array( 162 'taxonomy' => 'wptests_tax2', 163 'name' => 'Giraffe', 164 'slug' => 'giraffe', 165 'parent' => $t1, 166 ) 167 ); 168 169 $term = get_term( $t4 ); 170 171 $slug = wp_unique_term_slug( 'dog', $term ); 172 173 $this->assertSame( 'dog-animal-2', $slug ); 174 } 130 175 }
Note: See TracChangeset
for help on using the changeset viewer.