Post Type Switcher


This plugin adds a simple post-type drop-down to the post editor interface, allowing you to reassign any post to a new post type. It allows you to switch post’s type while editing your post.

Supported Types

The plugin can convert nearly every combination of posts, pages, and even custom post types:

  • Page to Post
  • Post to Page
  • Post to Custom
  • Custom to Custom

As of 3.0.0, support for switching to or from Attachments was removed. This may come back in a subsequent version.

Invisible post types, such as revisions, menus, etc., are purposely excluded. But, if you need to access invisible post types, you can adjust the boundaries using the ‘pts_post_type_filter’ filter.

Bulk Editing

With bulk editing, thanks to Matthew Gerring, you can select all the posts in a certain type and convert them to a new type with one quick action.

Captures d’écran

  • "Type" column in "Posts" screen.
  • "Post Type" interface in "Quick Edit".
  • "Post Type" interface in "Edit Post" screen.



  1. In your WordPress Dashboard go to « Plugins » -> « Add Plugin ».
  2. Search for « Post Type Switcher ».
  3. Install the plugin by pressing the « Install » button.
  4. Activate the plugin by pressing the « Activate » button.
  5. From the post edit screen, above the « Publish » button is the « Post Type » interface.
  6. Change post types as needed.

Exigences minimales

  • WordPress version 3.0 or greater.
  • PHP version 5.2.4 or greater.
  • MySQL version 5.0 or greater.

Recommended Requirements

  • Latest WordPress version.
  • PHP version 7.0 or greater.
  • MySQL version 5.7 or greater, or MariaDB 10 or greater.


Why would I need this?

You need to selectively change a posts type from one to another.

Does this ruin my taxonomy associations?

It should not. This plugin only changes the ‘post_type’ property of a post.


Missing Media Library images

Using version 3.0.0 of Post Type Switcher breaks Advanced Custom Forms Pro version 5.6.7 on WordPress 4.9.1.

When an image field is chosen from the Media Library on a page using an Advanced Custom Forms Pro field, the Media Library entry in wp_posts for the image is changed from post_type « attachment » to post type « page ». Because of that, the image no longer shows in the Media Library. Also, the image does not show in the Advanced Custom Forms Pro field on the page. The image remains on the server disk.

I deactivated and deleted Post Type Switcher.

WARNING: Do not install if you are using WooCommerce Multilingual/WPML!

Forget about this plugin if you are using WooCommerce Multilingual and WPML to translate products!

We installed this plugin, activated it and never used it. However, it wiped variants on our most popular (translated) products and it took us quite long to find the cause. In other words, this plugin has cost us a fortune in revenue (the translated language is our most profitable marked).

More detailed explanation: The plugin changed the post_type (in wp_posts) on variants to ‘product’ from ‘product_variation’ without any action taken from our side. Simply activating the plugin corrupts your database.

warning don’t use unless you program

This plugin has cost me money and time to have what it caused fixed.

Creates thousands of pages if triggered by another plugin.


You’ve Been Warned!!!!!!!

Works Great

It worked really fast and easy, and didn’t hurt anything on my Pages.

Thank you for such a well made Plugin!


This plugin works great, but GOD HELP YOU IF YOU HAVE CUSTOM POST TYPES WITH CHILD POSTS! The plugin will basically break that functionality. Your child posts will no longer be associated with their parents. Other than that, it’s great! 😀

Lire les 122 avis

Contributeurs & développeurs

« Post Type Switcher » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.


“Post Type Switcher” a été traduit dans 9 locales. Remerciez l’équipe de traduction pour ses contributions.

Traduisez « Post Type Switcher » dans votre langue.

Le développement vous intéresse ?

Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.



  • Improved Quick-Edit and Bulk-Edit support
  • Remove attachment type support for now, as there is no way to switch back
  • Fix bug causing some post-types to switch unexpectedly


  • Ensure quick-edit works with new procedure
  • Quick-edit « Type » column works again!


  • Improved plugin compatibility with WooThemes Sensei
  • Filter post arguments vs. hook to save_post
  • Add « post_type_switcher » action


  • Add support for network activation


  • Add textdomains for localization
  • Load translation strings using load_plugin_textdomain()
  • Before saving data chack if it’s not an autosave using wp_is_post_autosave()
  • Before saving data chack if it’s not a revision using wp_is_post_revision()
  • Security: Prevent direct access to directories
  • Security: Translation strings escaping
  • Add screenshots

1.5.0 – norcross

  • Fix multiple quickedit dropdowns


  • Improve handling of non-public post types


  • Fix saving of autodrafts


  • Improved WordPress 3.9 integration (added dashicon to publish metabox)


  • Add bulk editing to supported post types
  • Props Matthew Gerring for bulk edit contribution


  • Add is_admin() check to prevent theme-side interference
  • Change save_post priority to 999 to avoid plugin compatibility issues
  • Remove ending closing php tag
  • HTML and PHPDoc improvements


  • Fix revisions being nooped
  • Fix malformed HTML for some user roles
  • Make a singleton (meh…)


  • Fix JS bugs
  • Audit post save bail conditions
  • Tweak UI for WordPress 3.3


  • Use the API to change the post type, fixing a conflict with persistent object caches
  • No longer requires JavaScript


  • Disallow post types that are not public and do not have a visible UI


  • Release