Make WordPress Core

Ticket #35614: 35614.diff

File 35614.diff, 720 bytes (added by nacin, 8 years ago)

Playing with an idea.

  • src/wp-includes/capabilities.php

     
    429429        case 'assign_term':
    430430                $term_id = $args[0];
    431431                $term = get_term( $term_id );
    432                 if ( ! $term || is_wp_error( $term ) ) {
     432                if ( ! $term ) {
    433433                        $caps[] = 'do_not_allow';
    434434                        break;
    435435                }
    436436
     437                if ( is_wp_error( $term ) ) {
     438                        if ( 'ambiguous_term_id' === $term->get_error_code() ) {
     439                                _split_shared_term( $term_id, /* $tt_id */ );
     440                        }
     441
     442                        $caps[] = 'do_not_allow';
     443                        break;
     444                }
     445
    437446                $tax = get_taxonomy( $term->taxonomy );
    438447                if ( ! $tax ) {
    439448                        $caps[] = 'do_not_allow';