wp_xmlrpc_server::wp_newPost() WordPress Method
The wp_xmlrpc_server::wp_newPost() method is used to create a new post in WordPress. This method takes a number of arguments, including the post title, content, author, and categories.
wp_xmlrpc_server::wp_newPost( array $args ) #
Create a new post for any registered post type.
Parameters
- $args
(array)(Required)Method arguments. Note: top-level arguments must be ordered as documented.
- 'blog_id'
(int) Blog ID (unused). - 'username'
(string) Username. - 'password'
(string) Password. - 'content_struct'
(array) Content struct for adding a new post. See wp_insert_post() for information on additional post fields- 'post_type'
(string) Post type. Default 'post'. - 'post_status'
(string) Post status. Default 'draft' - 'post_title'
(string) Post title. - 'post_author'
(int) Post author ID. - 'post_excerpt'
(string) Post excerpt. - 'post_content'
(string) Post content. - 'post_date_gmt'
(string) Post date in GMT. - 'post_date'
(string) Post date. - 'post_password'
(string) Post password (20-character limit). - 'comment_status'
(string) Post comment enabled status. Accepts 'open' or 'closed'. - 'ping_status'
(string) Post ping status. Accepts 'open' or 'closed'. - 'sticky'
(bool) Whether the post should be sticky. Automatically false if$post_status
is 'private'. - 'post_thumbnail'
(int) ID of an image to use as the post thumbnail/featured image. - 'custom_fields'
(array) Array of meta key/value pairs to add to the post. - 'terms'
(array) Associative array with taxonomy names as keys and arrays of term IDs as values. - 'terms_names'
(array) Associative array with taxonomy names as keys and arrays of term names as values. - 'enclosure'
(array) Array of feed enclosure data to add to post meta.- 'url'
(string) URL for the feed enclosure. - 'length'
(int) Size in bytes of the enclosure. - 'type'
(string) Mime-type for the enclosure. }
- 'url'
- 'post_type'
- 'blog_id'
Return
(int|IXR_Error) Post ID on success, IXR_Error instance otherwise.
Source
File: wp-includes/class-wp-xmlrpc-server.php
public function wp_newPost( $args ) { if ( ! $this->minimum_args( $args, 4 ) ) { return $this->error; } $this->escape( $args ); $username = $args[1]; $password = $args[2]; $content_struct = $args[3]; $user = $this->login( $username, $password ); if ( ! $user ) { return $this->error; } // Convert the date field back to IXR form. if ( isset( $content_struct['post_date'] ) && ! ( $content_struct['post_date'] instanceof IXR_Date ) ) { $content_struct['post_date'] = $this->_convert_date( $content_struct['post_date'] ); } /* * Ignore the existing GMT date if it is empty or a non-GMT date was supplied in $content_struct, * since _insert_post() will ignore the non-GMT date if the GMT date is set. */ if ( isset( $content_struct['post_date_gmt'] ) && ! ( $content_struct['post_date_gmt'] instanceof IXR_Date ) ) { if ( '0000-00-00 00:00:00' === $content_struct['post_date_gmt'] || isset( $content_struct['post_date'] ) ) { unset( $content_struct['post_date_gmt'] ); } else { $content_struct['post_date_gmt'] = $this->_convert_date( $content_struct['post_date_gmt'] ); } } /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */ do_action( 'xmlrpc_call', 'wp.newPost', $args, $this ); unset( $content_struct['ID'] ); return $this->_insert_post( $user, $content_struct ); }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
3.4.0 | Introduced. |