wppaste
WordPress

WP_REST_Posts_Controller::handle_status_param( string $post_status, WP_Post_Type $post_type ): string|WP_Error

Since
4.7.0
Source
wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1529
Determines validity and normalizes the given status parameter.

Parameters

$post_statusstring
Post status.
$post_typeWP_Post_Type
Post type.

Return

string|WP_Error
Post status or WP_Error if lacking the proper permission.

Uses · 5

Used by · 1

Source

	protected function handle_status_param( $post_status, $post_type ) { 		switch ( $post_status ) {			case 'draft':			case 'pending':				break;			case 'private':				if ( ! current_user_can( $post_type->cap->publish_posts ) ) {					return new WP_Error(						'rest_cannot_publish',						__( 'Sorry, you are not allowed to create private posts in this post type.' ),						array( 'status' => rest_authorization_required_code() )					);				}				break;			case 'publish':			case 'future':				if ( ! current_user_can( $post_type->cap->publish_posts ) ) {					return new WP_Error(						'rest_cannot_publish',						__( 'Sorry, you are not allowed to publish posts in this post type.' ),						array( 'status' => rest_authorization_required_code() )					);				}				break;			default:				if ( ! get_post_status_object( $post_status ) ) {					$post_status = 'draft';				}				break;		} 		return $post_status;	}

History

Introduced in 4.7.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 6.8.8 tag, from src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.