W3cubDocs

/WordPress

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. }

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' );

		unset( $content_struct['ID'] );

		return $this->_insert_post( $user, $content_struct );
	}

Changelog

Version Description
3.4.0 Introduced.

© 2003–2019 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/wp_newpost