wp_write_post(): int|WP_Error

In this article

Creates a new post from the “Write Post” form using $_POST information.

Return

int|WP_Error Post ID on success, WP_Error on failure.

Source

function wp_write_post() {	if ( isset( $_POST['post_type'] ) ) {	$ptype = get_post_type_object( $_POST['post_type'] );	} else {	$ptype = get_post_type_object( 'post' );	}	if ( ! current_user_can( $ptype->cap->edit_posts ) ) {	if ( 'page' === $ptype->name ) {	return new WP_Error( 'edit_pages', __( 'Sorry, you are not allowed to create pages on this site.' ) );	} else {	return new WP_Error( 'edit_posts', __( 'Sorry, you are not allowed to create posts or drafts on this site.' ) );	}	}	$_POST['post_mime_type'] = '';	// Clear out any data in internal vars.	unset( $_POST['filter'] );	// Edit, don't write, if we have a post ID.	if ( isset( $_POST['post_ID'] ) ) {	return edit_post();	}	if ( isset( $_POST['visibility'] ) ) {	switch ( $_POST['visibility'] ) {	case 'public':	$_POST['post_password'] = '';	break;	case 'password':	unset( $_POST['sticky'] );	break;	case 'private':	$_POST['post_status'] = 'private';	$_POST['post_password'] = '';	unset( $_POST['sticky'] );	break;	}	}	$translated = _wp_translate_postdata( false );	if ( is_wp_error( $translated ) ) {	return $translated;	}	$translated = _wp_get_allowed_postdata( $translated );	// Create the post.	$post_id = wp_insert_post( $translated );	if ( is_wp_error( $post_id ) ) {	return $post_id;	}	if ( empty( $post_id ) ) {	return 0;	}	add_meta( $post_id );	add_post_meta( $post_id, '_edit_last', $GLOBALS['current_user']->ID );	// Now that we have an ID we can fix any attachment anchor hrefs.	_fix_attachment_links( $post_id );	wp_set_post_lock( $post_id );	return $post_id; } 

Changelog

VersionDescription
2.1.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.