Getting a post’s status in WordPress using get_post_status

The WordPress get_post_status function returns the status of a specific post in the WordPress database. This can be useful for retrieving the current status of a post, such as whether it is published, draft, pending, or private.

By using the get_post_status function, developers can easily retrieve the status of a post and use this information to make decisions within their WordPress theme or plugin. For example, they can display different content or apply different functionality based on the status of the post.

Parameters Accepted by the get_post_status Function

  • $post (int|WP_Post) – optional. Default value: null. Description: Post ID or post object. Defaults to global $post.

Value Returned by the get_post_status Function

The function returns a string representing the post status on success, or false on failure.


How to get the status of a specific post

$post_id = 123;
$status = get_post_status($post_id);
echo $status;

This code snippet retrieves the status of a specific post with ID 123 using the get_post_status function and then echoes the status.

How to check if a post is published

$post_id = 456;
$status = get_post_status($post_id);
if ($status === 'publish') {
 echo 'This post is published';
} else {
 echo 'This post is not published';

This code snippet uses the get_post_status function to retrieve the status of a specific post with ID 456. It then checks if the status is ‘publish’ and echoes the appropriate message based on the status.

How to loop through all posts and display their statuses

$posts = get_posts();
foreach ($posts as $post) {
 $status = get_post_status($post->ID);
 echo 'Post ID: ' . $post->ID . ' - Status: ' . $status . '<br>';

This code snippet retrieves all posts using the get_posts function and then loops through each post to retrieve and display their statuses using the get_post_status function.


In conclusion, the get_post_status function is a valuable tool for developers working with WordPress. It provides a simple way to retrieve the status of a specific post, allowing for easy implementation of conditional logic and dynamic content display. By understanding how to use this function effectively, developers can enhance the functionality and user experience of their WordPress websites. Whether it’s displaying different content based on a post’s status or creating custom workflows, get_post_status is a versatile function that can be leveraged in numerous ways. With its straightforward syntax and wide range of possible applications, this function is a valuable addition to any developer’s toolkit.

Related WordPress Functions