wpseek.com
A WordPress-centric search engine for devs and theme authors
get_post_status › WordPress Function
Since2.0.0
Deprecatedn/a
› get_post_status ( $post = null )
Parameters: |
|
Returns: |
|
Defined at: |
|
Codex: |
Retrieves 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.Related Functions: get_post_statuses, get_post_states, get_post_stati, _post_states, get_post_status_object
Source
function get_post_status( $post = null ) { // Normalize the post object if necessary, skip normalization if called from get_sample_permalink(). if ( ! $post instanceof WP_Post || ! isset( $post->filter ) || 'sample' !== $post->filter ) { $post = get_post( $post ); } if ( ! is_object( $post ) ) { return false; } $post_status = $post->post_status; if ( 'attachment' === $post->post_type && 'inherit' === $post_status ) { if ( 0 === $post->post_parent || ! get_post( $post->post_parent ) || $post->ID === $post->post_parent ) { // Unattached attachments with inherit status are assumed to be published. $post_status = 'publish'; } elseif ( 'trash' === get_post_status( $post->post_parent ) ) { // Get parent status prior to trashing. $post_status = get_post_meta( $post->post_parent, '_wp_trash_meta_status', true ); if ( ! $post_status ) { // Assume publish as above. $post_status = 'publish'; } } else { $post_status = get_post_status( $post->post_parent ); } } elseif ( 'attachment' === $post->post_type && ! in_array( $post_status, array( 'private', 'trash', 'auto-draft' ), true ) ) { /* * Ensure uninherited attachments have a permitted status either 'private', 'trash', 'auto-draft'. * This is to match the logic in wp_insert_post(). * * Note: 'inherit' is excluded from this check as it is resolved to the parent post's * status in the logic block above. */ $post_status = 'publish'; } /** * Filters the post status. * * @since 4.4.0 * @since 5.7.0 The attachment post type is now passed through this filter. * * @param string $post_status The post status. * @param WP_Post $post The post object. */ return apply_filters( 'get_post_status', $post_status, $post ); }