WordPress.org

Make WordPress Core

Changeset 32117


Ignore:
Timestamp:
04/13/2015 01:20:57 AM (4 years ago)
Author:
SergeyBiryukov
Message:

wp_update_term() should check if get_term() returned null.

props dlh.
fixes #31954.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/taxonomy.php

    r32047 r32117  
    33663366    global $wpdb;
    33673367
    3368     if ( ! taxonomy_exists($taxonomy) )
    3369         return new WP_Error('invalid_taxonomy', __('Invalid taxonomy'));
     3368    if ( ! taxonomy_exists( $taxonomy ) ) {
     3369        return new WP_Error( 'invalid_taxonomy', __( 'Invalid taxonomy' ) );
     3370    }
    33703371
    33713372    $term_id = (int) $term_id;
    33723373
    33733374    // First, get all of the original args
    3374     $term = get_term ($term_id, $taxonomy, ARRAY_A);
    3375 
    3376     if ( is_wp_error( $term ) )
     3375    $term = get_term( $term_id, $taxonomy, ARRAY_A );
     3376
     3377    if ( is_wp_error( $term ) ) {
    33773378        return $term;
     3379    }
     3380
     3381    if ( ! $term ) {
     3382        return new WP_Error( 'invalid_term', __( 'Empty Term' ) );
     3383    }
    33783384
    33793385    // Escape data pulled from DB.
  • trunk/tests/phpunit/tests/term/wpUpdateTerm.php

    r31812 r32117  
    654654        _unregister_taxonomy( 'wptests_tax' );
    655655    }
     656
     657    /**
     658     * @ticket 31954
     659     */
     660    public function test_wp_update_term_with_null_get_term() {
     661        $t = $this->factory->term->create( array( 'taxonomy' => 'category' ) );
     662        $found = wp_update_term( $t, 'post_tag', array( 'slug' => 'foo' ) );
     663
     664        $this->assertWPError( $found );
     665        $this->assertSame( 'invalid_term', $found->get_error_code() );
     666    }
     667
    656668}
Note: See TracChangeset for help on using the changeset viewer.