3,000+
June 10, 2026
February 27, 2018
Get Pro Version | Documentation | Support Forum | Rate the Plugin
Post Type Transfer lets you change the post type of any WordPress content. It works with standard Posts, Pages, and all custom post types.
Open a post. Pick the new post type from a dropdown. Click Update. The content transfers. Nothing is deleted. Nothing is lost. Only the post type classification changes.
No developer needed. No database access. No technical knowledge required. More than 3000+ active sites use Post Type Transfer to keep their content structure clean.
Post Type Transfer is free to download and use. The core transfer features have no restrictions. Need more? Post Type Transfer Pro adds bulk transfer, drag-and-drop post reordering, post duplication, WP-CLI support, and priority support.
Wrong post type assignments happen on every WordPress site. Here are the situations that come up constantly:
• A case study published as a blog post because the custom post type did not exist yet
• A landing page sitting under Pages when it belongs in a custom post type
• Hundreds of legacy posts that need migrating to a new structure after a site redesign
• A client site with no content organization that needs sorting before launch
• Content published under the wrong type by a team member who did not know the difference
Without this plugin, fixing any of those means manually recreating content, editing the database, or paying a developer. Post Type Transfer handles it from the WordPress dashboard you already use every day.
How It Works
Choose any of the two available methods to transfer a post between post types. Each method takes less than a minute.
Method 1: Transfer from the Post Editor
- Log in to your WordPress Admin Dashboard.
- Navigate to the post you want to transfer and click Edit.
- In the right-hand sidebar, select the Post tab and locate the Post Type section.
- Choose the desired post type from the dropdown menu.
- Click Update to save your changes.
The post is transferred instantly while retaining all existing content, metadata, and settings.
Method 2: Transfer Using Quick Edit
The Quick Edit option transfers a post without opening the full editor.
- Go to the Posts listing screen.
- Hover over the post you want to transfer and click Quick Edit.
- Locate the Post Type dropdown within the Quick Edit panel.
- Select the target post type.
- Click Update.
The post is transferred immediately without loading the editor screen.
Features marked [PRO] are available in the Pro version.
Post Type Transfer Pro includes all free features plus advanced features for agencies, developers, and content-heavy websites.
Get Pro Version: Post Type Transfer Pro
Open the post in the editor, locate the Post Type section in the right sidebar, select the new post type from the dropdown menu, and click Update. The post is transferred immediately without affecting its content or settings.
Yes. The plugin supports all registered post types, including WooCommerce products, CPT UI post types, ACF-generated post types, and custom post types created by themes or plugins.
No. The plugin only changes the post type assignment. Your content, custom fields, featured image, metadata, taxonomies, and other settings remain unchanged.
Yes. It is available in PRO version, you need to select multiple posts from the listing screen, choose Bulk Edit, select the target post type, and click Update to transfer all selected posts at once.
Changing a post type may affect the permalink structure depending on how the post type is configured. If URLs change, you should create 301 redirects to preserve inbound links and maintain search engine rankings.
The free version includes post type transfers from the editor, and Quick Edit, along with custom post type support, CSV import and export, and post visibility controls.
The Pro version adds Bulk Edit, selective enablement, Taxonomy Management, Drag-and-Drop Post Reordering, AutoSort, Advanced Reorder Interface, Post Duplication, and WordPress Multisite Support.
Export posts to a CSV file from the plugin settings. The exported file includes post titles, content, featured image URLs, categories, tags, and publication dates. You can import the same file into another WordPress site or use it to recreate content on the current site.
Use the ptt_csv_export_filename filter to customize the CSV filename before download.
Parameters:
– $filename (string): Default export filename.
– $post_type (string): Current post type being exported.
Use the ptt_csv_export_columns filter to add, remove, or reorder columns in the exported CSV.
Parameters:
– $columns (array): Ordered list of CSV column names.
– $post_type (string): Current post type being exported.
Use the ptt_csv_export_row filter to modify individual CSV row data or populate custom column values.
Parameters:
– $row (array): Associative row data (column => value).
– $post (WP_Post): Current post object.
– $post_type (string): Current post type being exported.
Use the ptt_csv_import_skip_row filter to programmatically skip importing a CSV row.
Parameters:
– $skip (bool): Whether the row should be skipped.
– $data (array): Parsed CSV row data.
– $post_type (string): Target post type.
– $row_num (int): CSV row number.
Use the ptt_csv_import_post_data filter to change post data before it is passed to wp_insert_post() or wp_update_post().
Parameters:
– $post_data (array): Post data that will be saved.
– $data (array): Parsed CSV row data.
– $post_type (string): Target post type.
– $existing (WP_Post|null): Existing matched post object, if available.
Use the ptt_csv_import_meta_value filter to modify post meta values before they are stored. Return null to prevent a specific meta key from being saved.
Parameters:
– $value (mixed): Meta value.
– $key (string): Meta key.
– $post_id (int): Post ID.
– $post_type (string): Target post type.
Use the ptt_csv_import_image_url filter to modify the featured image URL before it is downloaded and attached. Return an empty string to skip importing the image.
Parameters:
– $url (string): Original image URL.
– $post_id (int): Post ID.
You can request help through the WordPress.org support forum or contact us directly at support@krishaweb.com.