If you look at the source get_user_by()
is not too much more than a kind of interface to the WP_User
object. You can see that it uses the methods ‘get_data_by()`:
$userdata = WP_User::get_data_by( $field, $value );
And init
:
$user = new WP_User;
$user->init( $userdata );
Nor does the cache object used by get_data_by()
I don’t see a way to do it without replacing that function. Maybe somebody can spot something I don’t.