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
*
* @since 3.3.0
* @since 4.4.0 Added 'ID' as an alias of 'id' for the `$field` parameter.
*
* @static
*
* @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
* @return object|false Raw user object
*/
public static function get_data_by( $field, $value ) {
global $wpdb;
// 'ID' is an alias of 'id'.
if ( 'ID' === $field ) {
$field = 'id';
}
if ( 'id' == $field ) {
// Make sure the value is numeric to avoid casting objects, for example,
// to int 1.

View File

@ -145,8 +145,9 @@ if ( !function_exists('get_user_by') ) :
* Retrieve user info by a given field
*
* @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.
* @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 );
}
/**
* @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
*/