What is a Post Status in WordPress?

Have you ever wondered what “Draft” or “Pending Review” mean when you're writing a WordPress post? These are called “post statuses”.

In this guide, I'm going to introduce you to “Draft”, “Pending Review” and the other post statuses that are available for WordPress posts.

These statuses control whether WordPress posts are visible to the entire world, waiting for moderation, or sent to the trash to await deletion. To customize these statuses, you can use the PublishPress Statuses plugin.


The Default Statuses in WordPress

Out-of-the-box, WordPress has 8 default statuses available to label your content.

  1. Publish: Viewable by any site visitor.
  2. Future: Scheduled to be published in a future date.
  3. Draft: This is an incomplete post that's not ready for publication.
  4. Pending: Awaiting a user with higher permissions to publish.
  5. Private: Viewable only to WordPress users at the Administrator level.
  6. Trash: These posts are waiting for deletion.
  7. Auto-Draft: Revisions that WordPress saves automatically while you are editing.
  8. Inherit: This allows a child post (such as Attachments and Revisions) to automatically adopt the same status as its parent post.

When you're creating a post, you'll be able to see 6 post statuses on the page. I've illustrated those statuses in this image below. One of the things you may have noticed already is that the names of these statuses are not shown consistently. For example, “Pending” is often shown as “Pending Review”.

WordPress statuses displayed in Gutenberg sidebar

It is also true that the meaning of these statuses is not always clear. Even the name “post statuses” is a little confusing because these statuses can apply to any post type – not just posts. One common question we get asked about these statuses is about the difference between pending review and draft. Pending Review or Draft? What's the difference in WordPress?

These are the 6 statuses that you'll see throughout the WordPress dashboard. You'll see them in many different areas of your site, including as filters on top of the Posts' screen:

Post statuses in the WordPress admin

In your database, you can find these statuses by looking in the wp_posts table and checking the post_status column.

WordPress statuses in the database

Adding and Moving Statuses in WordPress

If you want to update or change the statuses on your site, we recommend the PublishPress Statuses plugin. The Free version is available on WordPress.org.

This plugin allows you to create custom statuses for WordPress posts. The plugin is optimized for the new block editor, but should also support Classic Editor and some pages builders.

This screenshot below gives you an idea of how PublishPress Statuses will appear on your site:

Custom Statuses in Gutenberg

This is a video introduction to using the PublishPress Statuses plugin:


Pre-Publication Statuses

Go to the “Statuses” link in the WordPress admin and you will see the “Post Statuses” screen below. You are looking at the pre-publication statuses. These are the statuses used to label content before it goes live on your site.

There are several statuses in the “Main Workflow” area. This is a key part of the plugin. It contains statuses such as “Draft” and “Pending Review” that can not be removed. The “Main Workflow” must be used for posts, but you are able to add new statuses and re-arrange them.

  • Draft: This is the WordPress default status and can not be modified. It can not be removed from its “Default” position.
  • Pitch: This is a new status created by the plugin and can be re-ordered or disabled.
  • Assigned: This is a new status created by the plugin and can be re-ordered or disabled.
  • In Progress: This is a new status created by the plugin and can be re-ordered or disabled.
  • Pending Review: This is a core WordPress status and can be re-ordered but not disabled.
  • Approved: This is a new status created by the plugin and can be re-ordered or disabled.
Main Workflow in PublishPress Statuses

The “Main Workflow” must be used. This workflow contains the core WordPress statuses and it offers control over how posts move through the workflow. In the “Settings”, you can decide whether posts move to the next available status, or the highest available status.

However, PublishPress Statuses also offers an “Alternate Workflows” area. Users can manually select these statuses. These statuses should be used for posts that are being sidelined and don't need to keep following the main workflow.

Alternate Workflows in PublishPress Statuses

We call this the “Alternate Workflows” area because you can create more than one alternate workflow. PublishPress Statuses provides a “Committee” workflow as an example. Users can manually move the posts through these mini-workflows.

Alternate Workflows with indents

Visibility / Post-Publication Statuses

The “Visibility” tab shows the post-publication statuses in WordPress. These statuses are mainly used to restrict the visibility of posts once they have been published.

  • Scheduled: This is a core WordPress status and can not be re-ordered or disabled.
  • Published: This is a core WordPress status and can not be re-ordered or disabled.
  • Privately Published: This is a core WordPress status and can not be re-ordered or disabled.
PublishPress Statuses main screen

Statuses in the Post Editing Screen

When using PublishPress Statuses with the block editor, look for the “Workflow” button in the top-right corner of the screen.

Workflow button in PublishPress Statuses
  • Click the “Workflow” button and you'll be able to see the available statuses. These statuses are illustrated with the icons and colors from the options we saw earlier in this guide.
Workflow statuses in PublishPress Statuses

You can configure the operation of this feature using the “Settings” area in PublishPress Statuses. In the “Workflow sequence” area, you can choose to default the user choice to the next setting in the workflow, or the highest available setting.

PublishPress Statuses settings

Leave a Reply

Your email address will not be published. Required fields are marked *