Title: wp_xmlrpc_server::login
Published: April 25, 2014
Last modified: August 20, 2026

---

# wp_xmlrpc_server::login( string $username, string $password ): 󠀁[WP_User](https://developer.wordpress.org/reference/classes/wp_user/)󠁿|false

## In this article

 * [Parameters](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#source)
 * [Hooks](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#hooks)
 * [Related](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#wp--skip-link--target)

Logs user in.

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#parameters)󠁿

 `$username`stringrequired

User’s username.

`$password`stringrequired

User’s password.

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#return)󠁿

 [WP_User](https://developer.wordpress.org/reference/classes/wp_user/)|false [WP_User](https://developer.wordpress.org/reference/classes/wp_user/)
object if authentication passed, false otherwise.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#source)󠁿

    ```php
    public function login(
    	$username,
    	#[\SensitiveParameter]
    	$password
    ) {
    	if ( ! $this->is_enabled ) {
    		$this->error = new IXR_Error( 405, __( 'XML-RPC services are disabled on this site.' ) );
    		return false;
    	}

    	if ( $this->auth_failed ) {
    		$user = new WP_Error( 'login_prevented' );
    	} else {
    		$user = wp_authenticate( $username, $password );
    	}

    	if ( is_wp_error( $user ) ) {
    		$this->error = new IXR_Error( 403, __( 'Incorrect username or password.' ) );

    		// Flag that authentication has failed once on this wp_xmlrpc_server instance.
    		$this->auth_failed = true;

    		/**
    		 * Filters the XML-RPC user login error message.
    		 *
    		 * @since 3.5.0
    		 *
    		 * @param IXR_Error $error The XML-RPC error message.
    		 * @param WP_Error  $user  WP_Error object.
    		 */
    		$this->error = apply_filters( 'xmlrpc_login_error', $this->error, $user );
    		return false;
    	}

    	wp_set_current_user( $user->ID );
    	return $user;
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wp-xmlrpc-server.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.1/src/wp-includes/class-wp-xmlrpc-server.php#L295)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/class-wp-xmlrpc-server.php#L295-L331)

## 󠀁[Hooks](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#hooks)󠁿

 [apply_filters( ‘xmlrpc_login_error’, IXR_Error $error, WP_Error $user )](https://developer.wordpress.org/reference/hooks/xmlrpc_login_error/)

Filters the XML-RPC user login error message.

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#related)󠁿

| Uses | Description | 
| [wp_authenticate()](https://developer.wordpress.org/reference/functions/wp_authenticate/)`wp-includes/pluggable.php` |

Authenticates a user, confirming the login credentials are valid.

  | 
| [wp_set_current_user()](https://developer.wordpress.org/reference/functions/wp_set_current_user/)`wp-includes/pluggable.php` |

Changes the current user by ID or name.

  | 
| [IXR_Error::__construct()](https://developer.wordpress.org/reference/classes/ixr_error/__construct/)`wp-includes/IXR/class-IXR-error.php` |

PHP5 constructor.

  | 
| [__()](https://developer.wordpress.org/reference/functions/__/)`wp-includes/l10n.php` |

Retrieves the translation of $text.

  | 
| [apply_filters()](https://developer.wordpress.org/reference/functions/apply_filters/)`wp-includes/plugin.php` |

Calls the callback functions that have been added to a filter hook.

  | 
| [is_wp_error()](https://developer.wordpress.org/reference/functions/is_wp_error/)`wp-includes/load.php` |

Checks whether the given variable is a WordPress Error.

  | 
| [WP_Error::__construct()](https://developer.wordpress.org/reference/classes/wp_error/__construct/)`wp-includes/class-wp-error.php` |

Initializes the error.

  |

[Show 5 more](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#)

| Used by | Description | 
| [wp_xmlrpc_server::mt_getPostCategories()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/mt_getpostcategories/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves post categories.

  | 
| [wp_xmlrpc_server::mt_setPostCategories()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/mt_setpostcategories/)`wp-includes/class-wp-xmlrpc-server.php` |

Sets categories for a post.

  | 
| [wp_xmlrpc_server::mt_publishPost()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/mt_publishpost/)`wp-includes/class-wp-xmlrpc-server.php` |

Sets a post’s publish status to ‘publish’.

  | 
| [wp_xmlrpc_server::mw_editPost()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/mw_editpost/)`wp-includes/class-wp-xmlrpc-server.php` |

Edits a post.

  | 
| [wp_xmlrpc_server::mw_getPost()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/mw_getpost/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a post.

  | 
| [wp_xmlrpc_server::mw_getRecentPosts()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/mw_getrecentposts/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves list of recent posts.

  | 
| [wp_xmlrpc_server::mw_getCategories()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/mw_getcategories/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves the list of categories on a given blog.

  | 
| [wp_xmlrpc_server::mw_newMediaObject()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/mw_newmediaobject/)`wp-includes/class-wp-xmlrpc-server.php` |

Uploads a file, following your settings.

  | 
| [wp_xmlrpc_server::mt_getRecentPostTitles()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/mt_getrecentposttitles/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves the post titles of recent posts.

  | 
| [wp_xmlrpc_server::mt_getCategoryList()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/mt_getcategorylist/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves the list of all categories on a blog.

  | 
| [wp_xmlrpc_server::blogger_getUserInfo()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/blogger_getuserinfo/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves user’s data.

  | 
| [wp_xmlrpc_server::blogger_getPost()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/blogger_getpost/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a post.

  | 
| [wp_xmlrpc_server::blogger_getRecentPosts()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/blogger_getrecentposts/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves the list of recent posts.

  | 
| [wp_xmlrpc_server::blogger_newPost()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/blogger_newpost/)`wp-includes/class-wp-xmlrpc-server.php` |

Creates a new post.

  | 
| [wp_xmlrpc_server::blogger_editPost()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/blogger_editpost/)`wp-includes/class-wp-xmlrpc-server.php` |

Edits a post.

  | 
| [wp_xmlrpc_server::blogger_deletePost()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/blogger_deletepost/)`wp-includes/class-wp-xmlrpc-server.php` |

Deletes a post.

  | 
| [wp_xmlrpc_server::mw_newPost()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/mw_newpost/)`wp-includes/class-wp-xmlrpc-server.php` |

Creates a new post.

  | 
| [wp_xmlrpc_server::wp_getOptions()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getoptions/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves blog options.

  | 
| [wp_xmlrpc_server::wp_setOptions()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_setoptions/)`wp-includes/class-wp-xmlrpc-server.php` |

Updates blog options.

  | 
| [wp_xmlrpc_server::wp_getMediaItem()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getmediaitem/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a media item by ID.

  | 
| [wp_xmlrpc_server::wp_getMediaLibrary()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getmedialibrary/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a collection of media library items (or attachments).

  | 
| [wp_xmlrpc_server::wp_getPostFormats()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getpostformats/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a list of post formats used by the site.

  | 
| [wp_xmlrpc_server::wp_getPostType()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getposttype/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a post type.

  | 
| [wp_xmlrpc_server::wp_getPostTypes()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getposttypes/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves post types.

  | 
| [wp_xmlrpc_server::wp_getRevisions()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getrevisions/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves revisions for a specific post.

  | 
| [wp_xmlrpc_server::wp_restoreRevision()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_restorerevision/)`wp-includes/class-wp-xmlrpc-server.php` |

Restores a post revision.

  | 
| [wp_xmlrpc_server::blogger_getUsersBlogs()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/blogger_getusersblogs/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves blogs that user owns.

  | 
| [wp_xmlrpc_server::wp_getComments()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getcomments/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves comments.

  | 
| [wp_xmlrpc_server::wp_deleteComment()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_deletecomment/)`wp-includes/class-wp-xmlrpc-server.php` |

Deletes a comment.

  | 
| [wp_xmlrpc_server::wp_editComment()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_editcomment/)`wp-includes/class-wp-xmlrpc-server.php` |

Edits a comment.

  | 
| [wp_xmlrpc_server::wp_newComment()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_newcomment/)`wp-includes/class-wp-xmlrpc-server.php` |

Creates a new comment.

  | 
| [wp_xmlrpc_server::wp_getCommentStatusList()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getcommentstatuslist/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves all of the comment status.

  | 
| [wp_xmlrpc_server::wp_getCommentCount()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getcommentcount/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves comment counts.

  | 
| [wp_xmlrpc_server::wp_getPostStatusList()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getpoststatuslist/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves post statuses.

  | 
| [wp_xmlrpc_server::wp_getPageStatusList()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getpagestatuslist/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves page statuses.

  | 
| [wp_xmlrpc_server::wp_getPageTemplates()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getpagetemplates/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves page templates.

  | 
| [wp_xmlrpc_server::wp_getPages()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getpages/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves Pages.

  | 
| [wp_xmlrpc_server::wp_newPage()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_newpage/)`wp-includes/class-wp-xmlrpc-server.php` |

Creates a new page.

  | 
| [wp_xmlrpc_server::wp_deletePage()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_deletepage/)`wp-includes/class-wp-xmlrpc-server.php` |

Deletes a page.

  | 
| [wp_xmlrpc_server::wp_editPage()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_editpage/)`wp-includes/class-wp-xmlrpc-server.php` |

Edits a page.

  | 
| [wp_xmlrpc_server::wp_getPageList()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getpagelist/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves page list.

  | 
| [wp_xmlrpc_server::wp_getAuthors()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getauthors/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves authors list.

  | 
| [wp_xmlrpc_server::wp_getTags()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_gettags/)`wp-includes/class-wp-xmlrpc-server.php` |

Gets the list of all tags.

  | 
| [wp_xmlrpc_server::wp_newCategory()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_newcategory/)`wp-includes/class-wp-xmlrpc-server.php` |

Creates a new category.

  | 
| [wp_xmlrpc_server::wp_deleteCategory()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_deletecategory/)`wp-includes/class-wp-xmlrpc-server.php` |

Deletes a category.

  | 
| [wp_xmlrpc_server::wp_suggestCategories()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_suggestcategories/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves category list.

  | 
| [wp_xmlrpc_server::wp_getComment()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getcomment/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a comment.

  | 
| [wp_xmlrpc_server::wp_getPosts()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getposts/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves posts.

  | 
| [wp_xmlrpc_server::wp_newTerm()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_newterm/)`wp-includes/class-wp-xmlrpc-server.php` |

Creates a new term.

  | 
| [wp_xmlrpc_server::wp_editTerm()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_editterm/)`wp-includes/class-wp-xmlrpc-server.php` |

Edits a term.

  | 
| [wp_xmlrpc_server::wp_deleteTerm()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_deleteterm/)`wp-includes/class-wp-xmlrpc-server.php` |

Deletes a term.

  | 
| [wp_xmlrpc_server::wp_getTerm()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getterm/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a term.

  | 
| [wp_xmlrpc_server::wp_getTerms()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getterms/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves all terms for a taxonomy.

  | 
| [wp_xmlrpc_server::wp_getTaxonomy()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_gettaxonomy/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a taxonomy.

  | 
| [wp_xmlrpc_server::wp_getTaxonomies()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_gettaxonomies/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves all taxonomies.

  | 
| [wp_xmlrpc_server::wp_getUser()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getuser/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a user.

  | 
| [wp_xmlrpc_server::wp_getUsers()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getusers/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves users.

  | 
| [wp_xmlrpc_server::wp_getProfile()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getprofile/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves information about the requesting user.

  | 
| [wp_xmlrpc_server::wp_editProfile()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_editprofile/)`wp-includes/class-wp-xmlrpc-server.php` |

Edits user’s profile.

  | 
| [wp_xmlrpc_server::wp_getPage()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getpage/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a page.

  | 
| [wp_xmlrpc_server::wp_newPost()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_newpost/)`wp-includes/class-wp-xmlrpc-server.php` |

Creates a new post for any registered post type.

  | 
| [wp_xmlrpc_server::wp_editPost()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_editpost/)`wp-includes/class-wp-xmlrpc-server.php` |

Edits a post for any registered post type.

  | 
| [wp_xmlrpc_server::wp_deletePost()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_deletepost/)`wp-includes/class-wp-xmlrpc-server.php` |

Deletes a post for any registered post type.

  | 
| [wp_xmlrpc_server::wp_getPost()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getpost/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves a post.

  | 
| [wp_xmlrpc_server::wp_getUsersBlogs()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_getusersblogs/)`wp-includes/class-wp-xmlrpc-server.php` |

Retrieves the blogs of the user.

  | 
| [wp_xmlrpc_server::login_pass_ok()](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login_pass_ok/)`wp-includes/class-wp-xmlrpc-server.php` |

Checks user’s credentials. Deprecated.

  |

[Show 61 more](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#)

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/login/?output_format=md#changelog)󠁿

| Version | Description | 
| [2.8.0](https://developer.wordpress.org/reference/since/2.8.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_xmlrpc_server%2Flogin%2F)
before being able to contribute a note or feedback.