WordPress.org

Make WordPress Core

Ticket #16567: 16567.3.diff

File 16567.3.diff, 2.0 KB (added by kovshenin, 6 years ago)
  • src/wp-admin/includes/ajax-actions.php

     
    413413        $popular_ids = wp_popular_terms_checklist($taxonomy->name, 0, 10, false);
    414414
    415415        foreach ( $names as $cat_name ) {
    416                 $cat_name = trim($cat_name);
    417                 $category_nicename = sanitize_title($cat_name);
    418                 if ( '' === $category_nicename )
     416                $cat_id = wp_insert_term( $cat_name, $taxonomy->name, array( 'parent' => $parent ) );
     417                if ( is_wp_error( $cat_id ) && $cat_id->get_error_code() == 'term_exists' ) {
     418                        $cat_id = $cat_id->get_error_data();
     419                }
     420
     421                if ( is_wp_error( $cat_id ) || ! $cat_id ) {
    419422                        continue;
    420                 if ( !$cat_id = term_exists( $cat_name, $taxonomy->name, $parent ) )
    421                         $cat_id = wp_insert_term( $cat_name, $taxonomy->name, array( 'parent' => $parent ) );
    422                 if ( is_wp_error( $cat_id ) )
    423                         continue;
    424                 else if ( is_array( $cat_id ) )
     423                } else {
    425424                        $cat_id = $cat_id['term_id'];
     425                }
     426
    426427                $checked_categories[] = $cat_id;
    427428                if ( $parent ) // Do these all at once in a second
    428429                        continue;
     
    732733        $names = explode(',', wp_unslash( $_POST['newcat'] ) );
    733734        $x = new WP_Ajax_Response();
    734735        foreach ( $names as $cat_name ) {
    735                 $cat_name = trim($cat_name);
    736                 $slug = sanitize_title($cat_name);
    737                 if ( '' === $slug )
     736                $cat_id = wp_insert_term( $cat_name, $taxonomy->name, array( 'parent' => $parent ) );
     737                if ( is_wp_error( $cat_id ) && $cat_id->get_error_code() == 'term_exists' ) {
     738                        $cat_id = $cat_id->get_error_data();
     739                }
     740
     741                if ( is_wp_error( $cat_id ) || ! $cat_id ) {
    738742                        continue;
    739                 if ( !$cat_id = term_exists( $cat_name, 'link_category' ) )
    740                         $cat_id = wp_insert_term( $cat_name, 'link_category' );
    741                 if ( is_wp_error( $cat_id ) )
    742                         continue;
    743                 else if ( is_array( $cat_id ) )
     743                } else {
    744744                        $cat_id = $cat_id['term_id'];
     745                }
     746
    745747                $cat_name = esc_html( $cat_name );
    746748                $x->add( array(
    747749                        'what' => 'link-category',