Back to my Blog

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


Last modified: 29th January 2025

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

If you’ve been using Toolset Types to create custom post types (CPTs) and taxonomies for your WordPress projects, you may have noticed that it’s no longer free. For many users, this has prompted a migration to Advanced Custom Fields (ACF) and a complementary plugin like Custom Post Type UI (CPT UI) or manually registering CPTs and taxonomies in your theme or plugin code. In this post, I’ll walk you through the steps to migrate your custom post types and taxonomies from Toolset Types to ACF.


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

Migrating from Toolset Types to ACF (with or without CPT UI) may seem daunting, but with careful planning and execution, you can streamline your workflow and reduce dependency on paid plugins. By combining ACF with lightweight CPT and taxonomy management, you’ll have a scalable solution that’s easy to maintain.


Need help?

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 *


Previous Post: