Advertisements

press_it

Definition:
function press_it() {}

Press It form handler.

Return values

returns:Post ID

Source code

function press_it() {

	// define some basic variables

	$quick = array();

	$quick['post_status'] = 'draft'; // set as draft first

	$quick['post_category'] = isset($_POST['post_category']) ? $_POST['post_category'] : null;

	$quick['tax_input'] = isset($_POST['tax_input']) ? $_POST['tax_input'] : null;

	$quick['post_title'] = ( trim($_POST['title']) != '' ) ? $_POST['title'] : '  ';

	$quick['post_content'] = isset($_POST['post_content']) ? $_POST['post_content'] : '';



	// insert the post with nothing in it, to get an ID

	$post_ID = wp_insert_post($quick, true);

	if ( is_wp_error($post_ID) )

		wp_die($post_ID);



	$content = isset($_POST['content']) ? $_POST['content'] : '';



	$upload = false;

	if ( !empty($_POST['photo_src']) && current_user_can('upload_files') ) {

		foreach( (array) $_POST['photo_src'] as $key => $image) {

			// see if files exist in content - we don't want to upload non-used selected files.

			if ( strpos($_POST['content'], htmlspecialchars($image)) !== false ) {

				$desc = isset($_POST['photo_description'][$key]) ? $_POST['photo_description'][$key] : '';

				$upload = media_sideload_image($image, $post_ID, $desc);



				// Replace the POSTED content <img> with correct uploaded ones. Regex contains fix for Magic Quotes

				if ( !is_wp_error($upload) )

					$content = preg_replace('/<img ([^>]*)src=\\\?(\"|\')'.preg_quote(htmlspecialchars($image), '/').'\\\?(\2)([^>\/]*)\/*>/is', $upload, $content);

			}

		}

	}

	// set the post_content and status

	if ( isset( $_POST['publish'] ) && current_user_can( 'publish_posts' ) )

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

	elseif ( isset( $_POST['review'] ) )

		$quick['post_status'] = 'pending';

	else

		$quick['post_status'] = 'draft';

	$quick['post_content'] = $content;

	// error handling for media_sideload

	if ( is_wp_error($upload) ) {

		wp_delete_post($post_ID);

		wp_die($upload);

	} else {

		// Post formats

		if ( current_theme_supports( 'post-formats' ) && isset( $_POST['post_format'] ) ) {

			$post_formats = get_theme_support( 'post-formats' );

			if ( is_array( $post_formats ) ) {

				$post_formats = $post_formats[0];

				if ( in_array( $_POST['post_format'], $post_formats ) )

					set_post_format( $post_ID, $_POST['post_format'] );

				elseif ( '0' == $_POST['post_format'] )

					set_post_format( $post_ID, false );

			}

		}



		$quick['ID'] = $post_ID;

		wp_update_post($quick);

	}

	return $post_ID;

}

2603

Advertisements

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: