wp_xmlrpc_server::mt_publishPost() – Sets a post’s publish status to ‘publish’.

You appear to be a bot. Output may be restricted

Description

Sets a post's publish status to 'publish'.

Usage

$int|IXR_Error = wp_xmlrpc_server::mt_publishPost( $args );

Parameters

$args
( array ) required – { Method arguments. Note: arguments must be ordered as documented.
$0
( int ) required – Post ID.
$1
( string ) required – Username.
$2
( string ) required – Password. }

Returns

int|IXR_Error

Source

File name: wordpress/wp-includes/class-wp-xmlrpc-server.php
Lines:

1 to 32 of 32
  public function mt_publishPost( $args ) {
    $this->wp_xmlrpc_server::escape( $args );

    $post_ID  = (int) $args[0];
    $username = $args[1];
    $password = $args[2];

    $user = $this->wp_xmlrpc_server::login( $username, $password );
    if ( ! $user ) {
      return $this->error;
    }

    
/** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
    do_action( 'xmlrpc_call', 'mt.publishPost', $args, $this );

    $postdata = get_post( $post_ID, ARRAY_A );
    if ( ! $postdata ) {
      return new IXR_Error( 404, __( 'Invalid post ID.' ) );
    }

    if ( ! current_user_can( 'publish_posts' ) || ! current_user_can( 'edit_post', $post_ID ) ) {
      return new IXR_Error( 401, __( 'Sorry, you are not allowed to publish this post.' ) );
    }

    $postdata['post_status'] = 'publish';

    // Retain old categories.
    $postdata['post_category'] = wp_get_post_categories( $post_ID );
    $this->wp_xmlrpc_server::escape( $postdata );

    return wp_update_post( $postdata );
  }
 

 View on GitHub View on Trac