WordPress.org

Make WordPress Core

Ticket #41035: 41035.1.patch

File 41035.1.patch, 1.2 KB (added by chandrapatel, 12 months ago)

Added patch as per the solution I've thought in comment #6

  • src/wp-includes/taxonomy.php

     
    23912391        $term_ids   = array();
    23922392        $new_tt_ids = array();
    23932393
     2394        $terms_error = new WP_Error();
     2395
    23942396        foreach ( (array) $terms as $term ) {
    23952397                if ( ! strlen( trim( $term ) ) ) {
    23962398                        continue;
     
    24032405                        }
    24042406                        $term_info = wp_insert_term( $term, $taxonomy );
    24052407                }
     2408
    24062409                if ( is_wp_error( $term_info ) ) {
    2407                         return $term_info;
     2410                        $terms_error->add(
     2411                                $term_info->get_error_code(),
     2412                                $term . ': ' . $term_info->get_error_message()
     2413                        );
     2414                        continue;
    24082415                }
     2416
    24092417                $term_ids[] = $term_info['term_id'];
    24102418                $tt_id      = $term_info['term_taxonomy_id'];
    24112419                $tt_ids[]   = $tt_id;
     
    25052513         * @param array  $old_tt_ids Old array of term taxonomy IDs.
    25062514         */
    25072515        do_action( 'set_object_terms', $object_id, $terms, $tt_ids, $taxonomy, $append, $old_tt_ids );
    2508         return $tt_ids;
     2516
     2517        if ( ! $terms_error->has_errors() ) {
     2518                return $tt_ids;
     2519        } elseif ( ! empty( $tt_ids ) ) {
     2520                $terms_error->add_data( $tt_ids, 'affected_terms_tt_ids' );
     2521        }
     2522
     2523        return $terms_error;
     2524
    25092525}
    25102526
    25112527/**