Bulk Change Post Type in WordPress: Convert Posts, Pages and CPTs
To bulk change the post type in WordPress, for example to turn knowledge base articles into blog posts, posts into pages, or entries of one custom post type into another, you change a single field of each entry: its post type. WordPress itself has no screen for that, while WOLF has it as an editable column and as a Bulk Edit option. The change is one click; what needs planning is everything that depends on the post type: categories, URLs and templates. This page shows how to convert many entries at once, what moves with them and what does not, and the order that keeps the categories in place.
What changes when the post type changes
Every post, page and custom post type entry is a row in the same database table, and the post type is one column of that row. Changing it moves the entry to another list in wp-admin without copying anything. WOLF saves the new type with wp_update_post(), so WordPress and other plugins see a normal update.
| Stays as it was | Changes with the new type |
|---|---|
| ID, title, content, excerpt, author, publish date, status | The admin list where the entry appears |
| Comments, featured image and all custom fields (post meta) | The URL: the new type's permalink structure applies |
The slug, unless an entry of the new type already uses it (then WordPress adds -2) | The template the theme uses to display it |
| Term assignments in the database | Which taxonomies are shown and used: only those registered for the new type |
The last row is the one that surprises people. A knowledge base plugin registers its own taxonomy for article categories; blog posts use the Category taxonomy. They are different taxonomies, even when the term names are the same, so a converted article does not appear in any post category. One more WordPress rule applies when the target is post: a post without a category gets the Default Post Category (normally Uncategorized) when it is saved. Entries converted from a type without categories therefore land in Uncategorized.
Change the post type of many posts in WOLF
- Select the source post type in the post type switcher of the Posts Editor, for example your knowledge base articles.
- In the Filters tab, narrow the list to the entries to convert, for example one article category, and click Filter. Without a filter, the operation applies to all entries of the type.
- Open the Bulk Edit tab. In the statuses and types section, tick the checkbox of the Set: post type drop-down and choose the target type.
- Click Do Bulk Edit and confirm. The converted entries leave the current list, because they no longer belong to this type. Select the target type in the switcher to see them.
For a few entries, the Post type column of the table does the same per row; it is enabled by default and can be switched on in the Settings tab if it is hidden. Both the column and the Bulk Edit drop-down list the slugs of the public post types: post, page, the slugs of custom types, and attachment. Never choose attachment: that is the Media Library, and a post turned into a media item has no file behind it. Media files are not meant to be converted the other way either, which is why the Post type column is not available for Media.
If the source type is missing from the switcher, its plugin registered it as non-public. The fix, a short filter, is in custom post type not showing in the bulk editor. The general workflow for editing custom post types is in bulk edit custom post types.
Categories do not convert: plan the order
WOLF edits posts and the term assignments of posts; it does not turn the terms of one taxonomy into terms of another. If you convert all articles at once, they all end up in Uncategorized, and the information about which article belonged to which category is no longer visible. Convert one source category at a time instead:
- Create the target categories first, in Posts → Categories.
- In WOLF, select the source type, filter by one source category and convert the batch as described above.
- Select the target type in the switcher. The batch is easy to find: in the Filters tab, choose the category Uncategorized and set Date modified from to today, because the conversion counts as an edit. Click Filter.
- In the Bulk Edit tab, enable the Category taxonomy, choose the target category with the behavior replace and run it. The posts move from Uncategorized to the right category.
- Repeat for the next source category.
A shortcut when the target is post: set Default Post Category in Settings → Writing to the target category before converting each batch. The converted posts then land directly in it, and step 4 is not needed. Set the default category back when you are done.
Two details. An entry that belongs to several source categories is converted with the first batch that contains it; add its other categories afterwards with the behavior append, as described in bulk add a category to posts. And tags work the same way: knowledge base tags are a taxonomy of their own, so assign post tags to the converted posts if you need them.
URLs, templates and other side effects
- Old URLs stop working. An article at
/knowledge-base/reset-password/becomes a post at whatever your post permalinks say, for example/reset-password/. WordPress does not redirect between post types reliably, so add 301 redirects from the old addresses, and update internal links in your content. Converting between posts and pages changes URLs too whenever the two use different structures, for example/blog/%postname%/for posts. - The template changes. The entry is displayed with the new type's template. Custom fields stay attached, but the new template shows only what it was built to show, and features of the old plugin (votes, view counters, related articles) no longer apply.
- Pages are hierarchical. Posts converted to pages become top-level pages. Pages converted to posts keep their parent ID in the database, which posts ignore.
- Taxonomies of both types stay. When posts with categories are converted to a custom type that also uses Category, the categories remain visible. Terms of taxonomies the new type does not use stay in the database and come back if you convert the entries back.
Test, convert and revert safely
- Back up the database before a large conversion. A post type change is reversible in WOLF, but URLs and other plugins may react to it.
- Test on two or three entries: tick them in the table (ticked rows take priority over filters), run the operation, open them on the front end and check the URLs.
- Every change is recorded in History. History is kept per post type, under the type that was selected when the operation ran, so to revert a conversion select the source type in the switcher first, then revert the operation in the History tab. The entries get their old type back, and their old categories are visible again because those assignments were never removed.
- Run the batches one by one and check each in the target list before starting the next.
Checklist
- Target categories exist; the default category is set to the target (shortcut) or the batch is reassigned with replace after each conversion.
- The target in Set: post type is the right slug, and not
attachment. - One source category per batch; entries with several categories got the rest with append.
- 301 redirects from the old URLs are in place, and the new template displays the content correctly.
- You know where to revert: History, with the source type selected.
If a conversion does not behave as described, open a topic on the WOLF support forum with the source and target post types and the plugins that register them.