Accept 'ID' as a valid $field in get_user_by().

We already accept 'id'. `ID` more closely matches the database and
`WP_User` schemas.

Props Shelob9.
Fixes #33869.

git-svn-id: https://develop.svn.wordpress.org/trunk@34125 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Boone Gorges 2015-09-14 18:57:15 +00:00
parent 9700eb511e
commit 974517d2bc
3 changed files with 19 additions and 2 deletions

View File

@ -165,18 +165,24 @@ class WP_User {
* Return only the main user fields * Return only the main user fields
* *
* @since 3.3.0 * @since 3.3.0
* @since 4.4.0 Added 'ID' as an alias of 'id' for the `$field` parameter.
* *
* @static * @static
* *
* @global wpdb $wpdb * @global wpdb $wpdb
* *
* @param string $field The field to query against: 'id', 'slug', 'email' or 'login' * @param string $field The field to query against: 'id', 'ID', 'slug', 'email' or 'login'.
* @param string|int $value The field value * @param string|int $value The field value
* @return object|false Raw user object * @return object|false Raw user object
*/ */
public static function get_data_by( $field, $value ) { public static function get_data_by( $field, $value ) {
global $wpdb; global $wpdb;
// 'ID' is an alias of 'id'.
if ( 'ID' === $field ) {
$field = 'id';
}
if ( 'id' == $field ) { if ( 'id' == $field ) {
// Make sure the value is numeric to avoid casting objects, for example, // Make sure the value is numeric to avoid casting objects, for example,
// to int 1. // to int 1.

View File

@ -145,8 +145,9 @@ if ( !function_exists('get_user_by') ) :
* Retrieve user info by a given field * Retrieve user info by a given field
* *
* @since 2.8.0 * @since 2.8.0
* @since 4.4.0 Added 'ID' as an alias of 'id' for the `$field` parameter.
* *
* @param string $field The field to retrieve the user with. id | slug | email | login * @param string $field The field to retrieve the user with. id | ID | slug | email | login.
* @param int|string $value A value for $field. A user ID, slug, email address, or login name. * @param int|string $value A value for $field. A user ID, slug, email address, or login name.
* @return WP_User|false WP_User object on success, false on failure. * @return WP_User|false WP_User object on success, false on failure.
*/ */

View File

@ -445,6 +445,16 @@ class Tests_User extends WP_UnitTestCase {
$this->assertEquals( false, $user ); $this->assertEquals( false, $user );
} }
/**
* @ticket 33869
*/
public function test_user_get_data_by_ID_should_alias_to_id() {
$u = $this->factory->user->create();
$user = WP_User::get_data_by( 'ID', $u );
$this->assertEquals( $u, $user->ID );
}
/** /**
* @ticket 21431 * @ticket 21431
*/ */