diff --git a/src/wp-includes/class-wp-taxonomy.php b/src/wp-includes/class-wp-taxonomy.php index 4611ce9744..3a69b76551 100644 --- a/src/wp-includes/class-wp-taxonomy.php +++ b/src/wp-includes/class-wp-taxonomy.php @@ -333,6 +333,8 @@ final class WP_Taxonomy { } } + $args['name'] = $this->name; + foreach ( $args as $property_name => $property_value ) { $this->$property_name = $property_value; } diff --git a/tests/phpunit/tests/taxonomy.php b/tests/phpunit/tests/taxonomy.php index ca317bb395..9a4e8b2a0f 100644 --- a/tests/phpunit/tests/taxonomy.php +++ b/tests/phpunit/tests/taxonomy.php @@ -710,4 +710,15 @@ class Tests_Taxonomy extends WP_UnitTestCase { $this->assertFalse( taxonomy_exists( 'foo' ) ); } + /** + * @ticket 39308 + */ + public function test_taxonomy_name_property_should_not_get_overridden_by_passed_args() { + register_taxonomy( 'foo', 'post', array( 'name' => 'bar' ) ); + + $taxonomy = get_taxonomy( 'foo' ); + unregister_taxonomy( 'foo' ); + + $this->assertSame( 'foo', $taxonomy->name ); + } }