How to move custom post types and taxonomies from Toolset Types to ACF

ACF Logo

How to Move Custom Post Types and Taxonomies from Toolset Types to ACF

If you’ve inherited a WordPress project that uses Toolset Types for custom post types and taxonomies, you’re not alone. It was once a go-to plugin for this kind of setup, but in recent years, I’ve found it simpler and more efficient to handle everything through ACF as I’m already using it for fields.

In this post, I’ll show you how I safely migrate post types and taxonomies from Toolset Types into ACF without losing data, disrupting the front end, or breaking client workflows.

Whether you’re planning a full site rebuild or just want to clean up your tech stack, this guide will help you make the move with confidence.


Why migrate from Toolset Types to ACF?

Toolset Types has historically been a fantastic plugin for creating CPTs and taxonomies, but its shift away from free usage may no longer align with your budget or project needs. ACF offers greater flexibility for managing custom fields, while CPT UI or code-based solutions provide a lightweight and cost-effective way to handle CPTs and taxonomies. Combining ACF with these tools ensures you maintain full control over your site.


Step 1: Assess your current setup

Before making any changes, document your existing custom post types and taxonomies:

  1. Log into your WordPress admin dashboard.
  2. Navigate to Toolset Types > Post Types and Toolset Types > Taxonomies.
  3. Note the following details for each CPT:
    • Post type name (slug)
    • Labels (e.g., singular and plural names)
    • Public settings (e.g., publicly queryable, has archive, hierarchical)
    • Rewrite rules
  4. Similarly, record the details for taxonomies:
    • Taxonomy name (slug)
    • Associated post types
    • Labels
    • Hierarchical setting (like categories or tags)

This step ensures you don’t lose any critical configurations during the migration.


Step 2: Decide on your approach for CPTs and Taxonomies

You have two main options to recreate CPTs and taxonomies:

  1. Use Custom Post Type UI (CPT UI): A user-friendly plugin to register CPTs and taxonomies without coding.
  2. Register them manually with code: Add the necessary register_post_type() and register_taxonomy() functions to your theme’s functions.php file or a custom plugin.

Tip: While CPT UI is easier for beginners, manually registering CPTs and taxonomies provides better performance and version control, especially for developers.


Step 3: Recreate Custom Post Types and Taxonomies

Before proceeding: Make a backup of your website, especially the database! If it all goes wrong then you can easily roll back to this version. On another note, you should be making these changes on a local, or staging site, not your live site!

Next up, deactivate the Toolset Types plugin. This ensures there are no conflicts with existing CPTs or taxonomies – if you try to create the CPT’s in ACF it may tell you they already exist if Toolset is still activated.

Note that deactivating Toolset Types won’t delete your data, as CPTs and taxonomies will still exist in the database.

Option 1: Using CPT UI

  1. Install and activate the Custom Post Type UI plugin.
  2. Go to CPT UI > Add/Edit Post Types.
  3. Enter the details for your custom post type based on the information you gathered in Step 1.
  4. Repeat for any taxonomies under CPT UI > Add/Edit Taxonomies.

Option 2: Registering with code

Here’s an example of how to register a CPT in your functions.php file:

function register_custom_post_type() {
    $args = [
        'labels' => [
            'name' => __('Books'),
            'singular_name' => __('Book'),
        ],
        'public' => true,
        'has_archive' => true,
        'rewrite' => ['slug' => 'books'],
        'supports' => ['title', 'editor', 'thumbnail'],
    ];

    register_post_type('book', $args);
}
add_action('init', 'register_custom_post_type');

To register a taxonomy:

function register_custom_taxonomy() {
    $args = [
        'labels' => [
            'name' => __('Genres'),
            'singular_name' => __('Genre'),
        ],
        'public' => true,
        'hierarchical' => true,
        'rewrite' => ['slug' => 'genres'],
    ];

    register_taxonomy('genre', ['book'], $args);
}
add_action('init', 'register_custom_taxonomy');

Replace the slugs and labels with the data from Step 1.


Step 4: Migrate custom fields to ACF

  1. Install and activate Advanced Custom Fields.
  2. Navigate to Custom Fields > Field Groups.
  3. Recreate your custom fields by creating a new field group and assigning it to the appropriate post type or taxonomy.
  4. Ensure all field settings (e.g., field type, required status, and default values) match the original configuration in Toolset Types.

Tip: If you have a lot of custom fields, consider using ACF’s JSON export/import feature to speed up the process.


Step 5: Test your setup

  1. Verify that all CPTs and taxonomies appear correctly in the WordPress admin.
  2. Check the front-end display to ensure:
    • Archive and single post templates work as expected.
    • Permalinks are correct (re-save permalinks if necessary).
  3. Confirm that custom fields display properly on both the admin and front-end.

Step 6: Clean up Toolset Types

By now, Toolset Types should already be deactivated to avoid conflicts during migration. Once you’ve confirmed that everything works as expected:

  1. Delete the Toolset Types plugin.
  2. Monitor your site for any issues, such as broken links or missing content.

Conclusion

Moving away from Toolset doesn’t have to be messy. With a bit of planning, you can streamline your site’s setup and reduce the amount of plugins you’re using.


Need a hand?

This is a migration I am well and truly versed in, so if you would like me to take care of it for you, give me a shout for a no obligation quote!


Leave a Reply

Your email address will not be published. Required fields are marked *

Let's talk

Whether it’s a small step or a giant leap, I’m here to guide your project.

Make contact