WordPress at a glance

get_post_status() WP 1.0

Retrieve the post status based on the Post ID.

If the post ID is of an attachment, then the parent post status will be given instead.

Works based on: get_post()
✈ 1 time = 0.000357s = fast | 50000 times = 0.29s = very fast | PHP 7.0.5, WP 4.4.2
Hooks in function
Return

String/false. Post status on success, false on failure.

Usage

get_post_status( $post );
$post(int/WP_Post)
Post ID or post object..
Default: global $post

Code of get post status: wp-includes/post.php WP 5.2.1

<?php
function get_post_status( $post = null ) {
	$post = get_post( $post );

	if ( ! is_object( $post ) ) {
		return false;
	}

	if ( 'attachment' == $post->post_type ) {
		if ( 'private' == $post->post_status ) {
			return 'private';
		}

		// Unattached attachments are assumed to be published.
		if ( ( 'inherit' == $post->post_status ) && ( 0 == $post->post_parent ) ) {
			return 'publish';
		}

		// Inherit status from the parent.
		if ( $post->post_parent && ( $post->ID != $post->post_parent ) ) {
			$parent_post_status = get_post_status( $post->post_parent );
			if ( 'trash' == $parent_post_status ) {
				return get_post_meta( $post->post_parent, '_wp_trash_meta_status', true );
			} else {
				return $parent_post_status;
			}
		}
	}

	/**
	 * Filters the post status.
	 *
	 * @since 4.4.0
	 *
	 * @param string  $post_status The post status.
	 * @param WP_Post $post        The post object.
	 */
	return apply_filters( 'get_post_status', $post->post_status, $post );
}

Related Functions

From tag: statuses (of post comment user)

More from category: Posts, pages...

No comments
    Hello, !     Log In . Register