`get_the_category_by_ID()` should be taxonomy-agnostic.

Prior to 4.9, this function was accidentally taxonomy-agnostic in most cases.
The fix in [40979] caused a regression in this function. For backward
compatibility, we make it explicit that the query is by ID only.

See #42771.

git-svn-id: https://develop.svn.wordpress.org/trunk@42367 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Boone Gorges 2017-12-04 21:02:10 +00:00
parent 8951af66d4
commit ffb86c0552
2 changed files with 54 additions and 1 deletions

View File

@ -107,7 +107,7 @@ function get_the_category( $id = false ) {
*/
function get_the_category_by_ID( $cat_ID ) {
$cat_ID = (int) $cat_ID;
$category = get_term( $cat_ID, 'category' );
$category = get_term( $cat_ID );
if ( is_wp_error( $category ) ) {
return $category;

View File

@ -0,0 +1,53 @@
<?php
/**
* @group taxonomy
* @covers ::get_the_category_by_ID
*/
class Tests_Category_GetTheCategoryById extends WP_UnitTestCase {
public function test_success() {
$c = self::factory()->category->create( array(
'name' => 'Foo',
) );
$found = get_the_category_by_ID( $c );
$this->assertSame( 'Foo', $found );
}
/**
* @ticket 42771
*/
public function test_should_return_link_for_term_from_another_taxonomy_on_primed_cache() {
register_taxonomy( 'wptests_tax', 'post' );
$t = self::factory()->term->create( array(
'taxonomy' => 'wptests_tax',
'name' => 'Foo',
) );
$term = get_term( $t );
$found = get_the_category_by_ID( $t );
$this->assertSame( 'Foo', $found );
}
/**
* @ticket 42771
*/
public function test_should_return_link_for_term_from_another_taxonomy_on_empty_cache() {
register_taxonomy( 'wptests_tax', 'post' );
$t = self::factory()->term->create( array(
'taxonomy' => 'wptests_tax',
'name' => 'Foo',
) );
clean_term_cache( $t );
$found = get_the_category_by_ID( $t );
$this->assertSame( 'Foo', $found );
}
}