How to Unarchive Content
See below for the ways you can remove content from the archive with the "unarchive" action.
From the Posts screen
The Posts screen displays content in a table format, with each post as a row in the table.
From this screen a user can modify each entry with Row Actions, the "Quick Edit" interface, or with Bulk Actions. See more about these actions here.

Archived Post Status provides options in the posts screen for core content types post and page, as well as all public custom post types. See Extending the Plugin for how to modify this behavior.
Unarchive with Inline Action
When a user mouses over or focuses on an entry in the table, a list of links displays "inline" actions. Archived entries will have an link to "Unarchive" the content.
From the Edit Screen, navigate to the "Archived" filter
Hover over the row for the content
Click on the "Unarchive" link

Bulk Unarchive
To unarchive content in bulk:
Navigate to the "Archived" content in the edit screen.
Select the archived entries to be unarchived.
From the "Bulk actions" dropdown, select "Unarchive."
Click "Apply"

Note on Quick Edit
Prior to version 0.4.0 this plugin supported changing the post status in the "Quick Edit" via the status dropdown.
In version 0.4.0 this functionality was replaced with the inline and bulk actions above, to better align with how WordPress core handles post-published statuses like Trash.
With a Function
Always check that a plugin function exists, in case it's ever deactivated!
Content can be removed from the archive, "unarchived," in a plugin or theme using the aps_unarchive_post function:
This is modeled after the WordPress core behavior for untrashing posts, however the new post status will default to the previous status with the unarchive function.
Parameters
$post_id int optional
Post ID. Default is the ID of the global $post
Return
WP_Post | false Post data on success, false on failure.
Example
With WP CLI
Be sure the plugin is active before attempting to use the commands: Activate the plugin with this command: wp plugin activate archived-post-status
As of version 0.4.0, CLI commands similar to wp post delete (source) are available to archive content.
Options
<id>...
One or more IDs of posts to archive
[--status]
Override the new status of the post(s).
[--defer-term-counting]
Recalculate term count in batch, for a performance boost.
Examples
Note: Unarchiving more than 20 posts with the CLI command will output a progress bar instead of a success message:
Unarchiving content without the plugin
With WP-CLI
Use caution when running these commands on your production site. It's always a good idea to test first in a safe environment like a staging site.
Always backup your site and database prior to making bulk changes.
Here's a single command that retrieves all posts with a post status of "archive" across all public post types and then changes their status to draft:
Explanation:
wp post-type list --field=name --format=csv | grep -E "1$" | tr '\n' ',' | sed 's/,$//': This part of the command retrieves the names of all public post types by filtering the output ofwp post-type listto include only post types where the 'public' field is set to 1. It then formats the output as comma-separated values (CSV).wp post list --post_type=... --post_status=archive --field=ID: This command lists all posts with post status "archive" and post types obtained from the previous command. It retrieves only the IDs of these posts.wp post update ... --post_status=draft: This part of the command updates the status of the retrieved posts to "draft". Change "draft" to another status as needed.
This command will effectively change the post status to "draft" for all posts with the "archive" status across all public post types.
Note: There are limits to the number of arguments you can pass to the wp post update command, so if you have a lot of archived content this command might not work.
Last updated