WordPress.org

Make WordPress Core

Ticket #16282: 16282.diff

File 16282.diff, 996 bytes (added by dd32, 3 years ago)

POC of querying both old and new forms of the slug

  • wp-includes/taxonomy.php

     
    877877        if ( ! taxonomy_exists($taxonomy) ) 
    878878                return false; 
    879879 
    880         if ( 'slug' == $field ) { 
     880        if ( '_slug' == $field ) { 
    881881                $field = 't.slug'; 
    882                 $value = sanitize_title($value); 
    883882                if ( empty($value) ) 
    884883                        return false; 
     884 
     885        } else if ( 'slug' == $field ) { 
     886                $san_title = sanitize_title($value); 
     887                $san_title_query = sanitize_title_for_query($value); 
     888                $term = get_term_by('_slug', $san_title, $taxonomy, $output, $filter); 
     889                if ( empty($term) && $san_title != $san_title_query ) 
     890                        $term = get_term_by('_slug', $san_title_query, $taxonomy, $output, $filter); 
     891                return $term; 
     892 
    885893        } else if ( 'name' == $field ) { 
    886894                // Assume already escaped 
    887895                $value = stripslashes($value); 
    888896                $field = 't.name'; 
     897 
    889898        } else { 
    890899                return get_term( (int) $value, $taxonomy, $output, $filter); 
    891900        }