Retrieve all of the WordPress supported post statuses.

Description Description

Posts have a limited set of valid status values, this provides the post_status values and descriptions.

Top ↑

Return Return

(string[]) Array of post status labels keyed by their status.

Top ↑

More Information More Information

$post_statuses = get_post_statuses();


[draft] => Draft
[pending] => Pending Review
[private] => Private
[publish] => Published


To get an array of all post statuses, including those created with register_post_type(), see get_post_stati.

Top ↑

Source Source

File: wp-includes/post.php

function get_post_statuses() {
	$status = array(
		'draft'   => __( 'Draft' ),
		'pending' => __( 'Pending Review' ),
		'private' => __( 'Private' ),
		'publish' => __( 'Published' ),

	return $status;

Top ↑

Changelog Changelog

Version Description
2.5.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by terrarum

    Note that get_post_statuses returns a hard-coded list of statuses as indicated by the code sample. This list is missing core statuses such as ‘future’.

    To actually see the list of all post statuses available in your WordPress instance, use get_post_stati (

You must log in before being able to contribute a note or feedback.