get_post_status( int|WP_Post $post = null )
Retrieve the post status based on the post ID.
Description Description
If the post ID is of an attachment, then the parent post status will be given instead.
Parameters Parameters
- $post
-
(int|WP_Post) (Optional) Post ID or post object. Defaults to global $post..
Default value: null
Return Return
(string|false) Post status on success, false on failure.
Source Source
File: wp-includes/post.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 );
}
Expand full source code Collapse full source code View on Trac
Changelog Changelog
| Version | Description |
|---|---|
| 2.0.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
A basic example:
<?php if ( get_post_status ( $ID ) == 'private' ) { echo 'private'; } else { echo 'public'; } ?>