diff --git a/src/wp-includes/category-template.php b/src/wp-includes/category-template.php index c3782441e6..77c0d4532a 100644 --- a/src/wp-includes/category-template.php +++ b/src/wp-includes/category-template.php @@ -21,7 +21,7 @@ function get_category_link( $category ) { $category = (int) $category; } - $category = get_term_link( $category, 'category' ); + $category = get_term_link( $category ); if ( is_wp_error( $category ) ) { return ''; diff --git a/tests/phpunit/tests/category/getCategoryLink.php b/tests/phpunit/tests/category/getCategoryLink.php new file mode 100644 index 0000000000..49115ac608 --- /dev/null +++ b/tests/phpunit/tests/category/getCategoryLink.php @@ -0,0 +1,54 @@ +category->create(); + + $found = get_category_link( $c ); + $expected = home_url( '?cat=' . $c ); + + $this->assertSame( $expected, $found ); + } + + /** + * @ticket 42771 + */ + public function test_should_return_link_for_term_from_another_category_on_primed_cache() { + register_taxonomy( 'wptests_tax', 'post' ); + + $t = self::factory()->term->create( array( + 'taxonomy' => 'wptests_tax', + 'slug' => 'test-term', + ) ); + + $term = get_term( $t ); + + $found = get_category_link( $t ); + $expected = home_url( '?wptests_tax=test-term' ); + + $this->assertSame( $expected, $found ); + } + + /** + * @ticket 42771 + */ + public function test_should_return_link_for_term_from_another_category_on_empty_cache() { + register_taxonomy( 'wptests_tax', 'post' ); + + $t = self::factory()->term->create( array( + 'taxonomy' => 'wptests_tax', + 'slug' => 'test-term', + ) ); + + clean_term_cache( $t ); + + $found = get_category_link( $t ); + $expected = home_url( '?wptests_tax=test-term' ); + + $this->assertSame( $expected, $found ); + } +}