The get_post_states() WordPress PHP function retrieves an array of post states from a given post.
Usage
$states = get_post_states($post);
Input: $post (WP_Post object)
Output: $states (Array)
Parameters
$post(WP_Post) – The post object to retrieve states for.
More information
See WordPress Developer Resources: get_post_states()
Examples
Display post states for a specific post
This example retrieves post states for a specific post and displays them.
$post_id = 42; // Replace with a specific post ID
$post = get_post($post_id);
$states = get_post_states($post);
echo implode(', ', $states);
Show post states in a list of posts
This example displays post states alongside post titles in a list of posts.
$posts = get_posts();
foreach ($posts as $post) {
$states = get_post_states($post);
echo "{$post->post_title} - " . implode(', ', $states) . "<br>";
}
Check if a post is password protected
This example checks if a post is password protected and displays a message accordingly.
$post_id = 42; // Replace with a specific post ID
$post = get_post($post_id);
$states = get_post_states($post);
if (in_array('password', $states)) {
echo "This post is password protected.";
} else {
echo "This post is not password protected.";
}
Check if a post is private
This example checks if a post is private and displays a message accordingly.
$post_id = 42; // Replace with a specific post ID
$post = get_post($post_id);
$states = get_post_states($post);
if (in_array('private', $states)) {
echo "This post is private.";
} else {
echo "This post is not private.";
}
Check if a post is sticky
This example checks if a post is sticky and displays a message accordingly.
$post_id = 42; // Replace with a specific post ID
$post = get_post($post_id);
$states = get_post_states($post);
if (in_array('sticky', $states)) {
echo "This post is sticky.";
} else {
echo "This post is not sticky.";
}