WordPress.org

Make WordPress Core

Ticket #16282: 16282.diff

File 16282.diff, 996 bytes (added by dd32, 7 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        }