When creating content on WordPress, one of the most important features pertinent to the workflow is the Post Status system. Most users are familiar with the default options, such as Draft, Pending Review, Scheduled and Published – but what if your workflow requires more flexibility? That’s where custom post status come in. By adding more post status to the default list, you can tailor WordPress to handle more complicated editorial workflows, especially for team collaborations. Here, we’ll explore what post status are, why you might want to create custom ones, and how you can implement them in your WordPress site.
The Role of Post Status in WordPress
In WordPress, a post status defines the current state of a piece of content. By default, there are only 4 post status – Draft, Pending, Published, and Scheduled. These labels let the editorial team (both the writers and editors) know where a post is in its lifecycle. They also determine how WordPress handles that post – for example, whether it’s publicly visible or still private.
For a single user, the default list of post status may be sufficient. However, for sites with a big editorial team (writers/editors/etc.), the limitations of the existing post status can be easily seen.
For example, an online magazine might have stages like “Assigned,” “In Editing,” or “Ready for Publish.” WordPress, unfortunately, does not provide a simple interface out of the box for adding additional post status. This limitation is exactly why the ability to create and use custom post status is useful.
Why There Isn’t an Easy Method to Create Custom Post Status in WordPress?
While there is a register_post_status hook for developers to create custom post status, WordPress has not provided an interface for the end-users to easily add custom post status.
Apparently, this limitation is a result of WordPress’s philosophy of keeping its core lightweight and relying on third-party plugins for specialized features. By not overloading the core with advanced workflow tools, WordPress maintains flexibility for a wide range of different users. In short, the WordPress team doesn’t rate this as an important feature to add it to the core yet.
In addition, for developers who think that they can easily create custom post status by using the register_post_status hook, they are only partially correct. The function only registers the custom post status. It doesn’t provide the integration to display them in the Post editor. In short, while the register_post_status hook is available to use to create custom post status, it doesn’t just work. Much work is still required to make it usable.
How to Create Custom Post Status (Using Plugins) in WordPress
Fortunately, there are several WordPress plugins that make it easy for you to create and use custom post status. These plugins provide the interface for you to create custom post status, and integrate with the Post editor so you can use it while writing/editing your content.
1. Admin Optimizer
Disclaimer: we created Admin Optimizer.
Admin Optimizer is a modular all-in-one plugin that adds useful optimizations to WordPress. It comes with over 30 modules to help you improve your WordPress Admin. One of the modules is the Custom Post Status, which when enabled, allows you to create additional Post Status to use with your content.
Once installed, go to its Modules section and activate the Custom Post Status module. Once activated, go to Admin Optimizer -> Custom Post Status.

Enter the name, slug and description of the Custom Post Status, and click “Add New Status”. By default, it is available for all users and all post types. In the Pro version, you can restrict the Post Status to different post types and user roles.
Newly added custom post status will also show up in the Post editor as a dropdown at the right panel.
2. Edit Flow
Edit Flow is also another modular plugin specially catered for creating editorial workflow. Its Post Status module allows you to create custom post status and use it in the Post editor. However, while the plugin still works for the latest version of WordPress, it has not been maintained for quite a while.
Once installed, activate the Custom Statuses module, and you will be able to add new Post Status.

In the Post editor section, you will find the custom post status in the Extended Post Status dropdown.
3. PublishPress Statuses
PublishPresss Statuses used to be a part of its PublishPress plugin, but was recently removed and released as a new standalone plugin. In addition to adding new post status, it allows you to set up a workflow, so that the post can progress through a sequence of post status before going live.

While there are more customization option, the setup is also more complicated and not as straightforward. It is more suited if you require a strict workflow for your team to follow.
Wrapping Up
To sum it up, the ability to add custom post status in WordPress is a necessary feature, but not readily available. Luckily, there are several plugins, like the Admin Optimizer and PublishPress that fill the gap. Let us know if you also think the custom post status feature should be part of the WordPress core.