Ticket #21093: wp_unique_term_slug.patch
| File wp_unique_term_slug.patch, 1.7 KB (added by wpsmith, 11 months ago) |
|---|
-
wordpress/wp-includes/taxonomy.php
2241 2241 function wp_unique_term_slug($slug, $term) { 2242 2242 global $wpdb; 2243 2243 2244 if ( ! term_exists( $slug ) )2245 return $slug;2244 if ( ! term_exists( $slug ) && ! apply_filters( 'wp_unique_is_bad_term_slug', false, $slug, $term ) ) 2245 return apply_filters( 'wp_unique_term_slug', $slug, $term ); 2246 2246 2247 2247 // If the taxonomy supports hierarchy and the term has a parent, make the slug unique 2248 2248 // by incorporating parent slugs. 2249 if ( is_taxonomy_hierarchical($term->taxonomy) && !empty($term->parent) ) {2249 if ( is_taxonomy_hierarchical($term->taxonomy) && !empty($term->parent) || apply_filters( 'wp_unique_is_bad_term_slug', false, $slug, $term ) ) { 2250 2250 $the_parent = $term->parent; 2251 2251 while ( ! empty($the_parent) ) { 2252 2252 $parent_term = get_term($the_parent, $term->taxonomy); … … 2254 2254 break; 2255 2255 $slug .= '-' . $parent_term->slug; 2256 2256 if ( ! term_exists( $slug ) ) 2257 return $slug;2257 return apply_filters( 'wp_unique_term_slug', $slug, $term ); 2258 2258 2259 2259 if ( empty($parent_term->parent) ) 2260 2260 break; … … 2268 2268 else 2269 2269 $query = $wpdb->prepare( "SELECT slug FROM $wpdb->terms WHERE slug = %s", $slug ); 2270 2270 2271 if ( $wpdb->get_var( $query ) ) {2271 if ( $wpdb->get_var( $query ) || apply_filters( 'wp_unique_is_bad_term_slug', false, $slug, $term ) ) { 2272 2272 $num = 2; 2273 2273 do { 2274 2274 $alt_slug = $slug . "-$num"; … … 2278 2278 $slug = $alt_slug; 2279 2279 } 2280 2280 2281 return $slug;2281 return apply_filters( 'wp_unique_term_slug', $slug, $term ); 2282 2282 } 2283 2283 2284 2284 /**
