Make WordPress Core

Ticket #29848: 29848.patch

File 29848.patch, 3.7 KB (added by boonebgorges, 10 years ago)
  • src/wp-includes/taxonomy.php

    diff --git src/wp-includes/taxonomy.php src/wp-includes/taxonomy.php
    index 5846844..44447e8 100644
    function wp_insert_term( $term, $taxonomy, $args = array() ) { 
    24552455                        // The alias isn't in a group, so let's create a new one and firstly add the alias term to it.
    24562456                        $term_group = $wpdb->get_var("SELECT MAX(term_group) FROM $wpdb->terms") + 1;
    24572457
    2458                         /**
    2459                          * Fires immediately before the given terms are edited.
    2460                          *
    2461                          * @since 2.9.0
    2462                          *
    2463                          * @param int    $term_id  Term ID.
    2464                          * @param string $taxonomy Taxonomy slug.
    2465                          */
    2466                         do_action( 'edit_terms', $alias->term_id, $taxonomy );
    2467                         $wpdb->update($wpdb->terms, compact('term_group'), array('term_id' => $alias->term_id) );
    2468 
    2469                         /**
    2470                          * Fires immediately after the given terms are edited.
    2471                          *
    2472                          * @since 2.9.0
    2473                          *
    2474                          * @param int    $term_id  Term ID
    2475                          * @param string $taxonomy Taxonomy slug.
    2476                          */
    2477                         do_action( 'edited_terms', $alias->term_id, $taxonomy );
     2458                        wp_update_term( $alias->term_id, $taxonomy, array(
     2459                                'term_group' => $term_group,
     2460                        ) );
    24782461                }
    24792462        }
    24802463
    function wp_update_term( $term_id, $taxonomy, $args = array() ) { 
    30042987                        return new WP_Error('duplicate_term_slug', sprintf(__('The slug “%s” is already in use by another term'), $slug));
    30052988        }
    30062989
    3007         /** This action is documented in wp-includes/taxonomy.php */
     2990        /**
     2991         * Fires immediately before the given terms are edited.
     2992         *
     2993         * @since 2.9.0
     2994         *
     2995         * @param int    $term_id  Term ID.
     2996         * @param string $taxonomy Taxonomy slug.
     2997         */
    30082998        do_action( 'edit_terms', $term_id, $taxonomy );
    30092999        $wpdb->update($wpdb->terms, compact( 'name', 'slug', 'term_group' ), compact( 'term_id' ) );
    30103000        if ( empty($slug) ) {
    function wp_update_term( $term_id, $taxonomy, $args = array() ) { 
    30123002                $wpdb->update( $wpdb->terms, compact( 'slug' ), compact( 'term_id' ) );
    30133003        }
    30143004
    3015         /** This action is documented in wp-includes/taxonomy.php */
     3005        /**
     3006         * Fires immediately after the given terms are edited.
     3007         *
     3008         * @since 2.9.0
     3009         *
     3010         * @param int    $term_id  Term ID
     3011         * @param string $taxonomy Taxonomy slug.
     3012         */
    30163013        do_action( 'edited_terms', $term_id, $taxonomy );
    30173014
    30183015        $tt_id = $wpdb->get_var( $wpdb->prepare( "SELECT tt.term_taxonomy_id FROM $wpdb->term_taxonomy AS tt INNER JOIN $wpdb->terms AS t ON tt.term_id = t.term_id WHERE tt.taxonomy = %s AND t.term_id = %d", $taxonomy, $term_id) );
  • tests/phpunit/tests/term.php

    diff --git tests/phpunit/tests/term.php tests/phpunit/tests/term.php
    index 2576157..8bd0706 100644
    class Tests_Term extends WP_UnitTestCase { 
    244244                $this->assertEquals( 0, term_exists(NULL) );
    245245        }
    246246
     247        public function test_wp_insert_term_alias_of_no_term_group() {
     248                register_taxonomy( 'wptests_tax', 'post' );
     249                $original_term_id = $this->factory->term->create( array(
     250                        'taxonomy' => 'wptests_tax',
     251                ) );
     252                $original_term = get_term( $original_term_id, 'wptests_tax' );
     253
     254                $created_term_ids = wp_insert_term( 'Foo', 'wptests_tax', array(
     255                        'alias_of' => $original_term->slug,
     256                ) );
     257                $created_term = get_term( $created_term_ids['term_id'], 'wptests_tax' );
     258
     259                $updated_original_term = get_term( $original_term->term_id, 'wptests_tax' );
     260
     261                $term = get_term( $created_term_ids['term_id'], 'wptests_tax' );
     262                _unregister_taxonomy( 'wptests_tax' );
     263
     264                $this->assertSame( 0, $original_term->term_group );
     265                $this->assertNotEmpty( $created_term->term_group );
     266                $this->assertSame( $created_term->term_group, $updated_original_term->term_group );
     267        }
     268
    247269        public function test_wp_insert_term_duplicate_name_slug_non_hierarchical() {
    248270                register_taxonomy( 'foo', 'post', array() );
    249271