What is CPT UI plugin?
Custom Post Type UI (CPT UI) is a free WordPress plugin for registering custom post types and custom taxonomies through an admin interface, without writing PHP code. It is one of the most widely installed WordPress plugins on WordPress.org, with over 2 million active installations, and has long been the standard companion plugin for ACF — CPT UI creates the custom post types, ACF attaches fields to them. Together, they provide the foundational custom content modeling stack for millions of WordPress sites.
CPT UI exposes all the arguments of WordPress’s register_post_type() and register_taxonomy() functions through a clean admin form: labels, slug, public visibility, menu icon, REST API support, supports (title, editor, thumbnail, excerpt, etc.), and capability type. This eliminates the need to write and maintain custom post type registration code, making CPT UI valuable both for developers who prefer UI configuration and for site builders who cannot write PHP.
CPT UI stores post type and taxonomy registrations in the WordPress database (wp_options). One important consideration: if CPT UI is deactivated, its custom post types and taxonomies become unavailable until it is reactivated — unlike code-registered types that are always registered as long as the code is present. For sites where CPT UI is the sole registration method, it should be treated as a permanent plugin rather than a temporary tool. For deployment workflows requiring version-controlled post type definitions, registering post types in code (or using ACPT or Pods) may be preferable.
Need Help With CPT UI Setup, Troubleshooting, or Customization?
Need help with CPT UI? Whether you are dealing with errors, broken functionality, styling problems, plugin conflicts, or advanced customization, we can help you fix the issue and get the plugin working properly on your WordPress site.
Get CPT UI Expert HelpKey Features
- Register custom post types via admin interface with all standard WordPress arguments
- Register custom taxonomies via admin interface
- Import and export post type and taxonomy registrations as JSON or PHP code (for moving to code-based registration)
- REST API support configuration
- User capability type configuration
Pros & Cons
Pros
- Most widely used custom post type registration plugin — massive community and compatibility
- Exposes all register_post_type() arguments without code
- Export to PHP code enables moving post type definitions to theme functions.php for code-based deployment
Cons
- Post types become unavailable if CPT UI is deactivated — creates plugin dependency
- Database-stored registrations are less deployment-friendly than code-based registration
Free vs Premium
Completely free. No paid version.
Common Problems & Fixes
After deactivating CPT UI, content from custom post types is missing from the site. How do I restore it?
The content is not lost — it still exists in the database. However, the custom post type is no longer registered, so WordPress does not serve it. Reactivating CPT UI immediately restores all content. If you want to maintain the custom post type without CPT UI as a dependency, use CPT UI’s Export feature (Post Types → Get Code) to copy the generated PHP code. Paste this code into your theme’s functions.php or a custom plugin. Once the post type is registered in code, you can safely deactivate CPT UI.
A CPT UI custom post type is showing a 404 error on single post pages — the URL resolves but displays a not-found page. How do I fix this?
This is a permalink/rewrite rule issue. Go to Settings → Permalinks and click Save Changes — this flushes and regenerates rewrite rules including those for CPT UI-registered post types. If the 404 persists, verify the post type’s “Public” setting in CPT UI is set to True and the “Has Archive” setting is configured correctly. Also ensure the post type slug does not conflict with an existing WordPress page slug (e.g., a post type slug of “portfolio” conflicting with a page named “portfolio”).
CPT UI custom taxonomy terms are not filtering correctly in the WordPress admin post list — filtering by taxonomy shows all posts regardless of term. How do I fix this?
Taxonomy filtering in the WordPress admin list requires the taxonomy to be registered with query_var enabled and the rewrite properly configured. In CPT UI → Edit Taxonomy → [taxonomy name], verify “Query Var” is set to True and “Rewrite” is enabled. After changing these settings, flush rewrite rules (Settings → Permalinks → Save). Also verify the taxonomy is linked to the correct post type — in CPT UI, the Post Type Connection field on the taxonomy registration must include the target post type slug.
Customization & Developer Notes
How do I export a CPT UI custom post type to PHP code for code-based deployment?
Go to CPT UI → Tools → Get Code. Select your custom post type from the dropdown and CPT UI generates the complete register_post_type() PHP function call with all configured arguments. Copy this code into your theme’s functions.php or a custom plugin’s main PHP file. After moving to code-based registration, deactivate CPT UI — the post type will continue to work via the code. This is recommended for production sites where plugin dependencies should be minimized and code should be version-controlled.
How do I set a custom Dashicons menu icon for a CPT UI post type?
In CPT UI → Edit Post Type → [your post type], find the “Menu Icon” field. Click the field to open the Dashicons picker — a visual grid of all available WordPress Dashicons icons. Click the desired icon to select it, and the Dashicons class name (e.g., dashicons-portfolio) is automatically entered. Save the post type. The selected icon appears in the WordPress admin sidebar next to your custom post type. For custom SVG icons, enter the SVG data URI directly in the Menu Icon field instead of using the Dashicons picker.
Frequently Asked Questions
Do I need CPT UI if I use ACPT, Pods, or Toolset?
No — ACPT, Pods, Toolset, Meta Box (with MB Custom Post Type), and JetEngine all include built-in custom post type registration. CPT UI is needed specifically when using ACF or Carbon Fields for custom fields, as those plugins do not include CPT registration UI. If your custom fields plugin handles CPT registration, CPT UI is redundant.
Is it safe to deactivate CPT UI after exporting post types to code?
Yes, once the register_post_type() and register_taxonomy() PHP code is active in your theme or a custom plugin, CPT UI is no longer needed. Deactivating CPT UI after the code is in place is safe — the post types remain registered via code. Verify the code is working correctly (check the post type appears in the admin menu) before deactivating CPT UI. Keep a backup of the CPT UI export JSON in case you need to restore the UI-based registration.
Can CPT UI break after updates?
Yes, that can happen, especially on older sites with many plugins. This usually happens when the plugin, theme, and add-ons are updated out of sequence. In most cases, testing on staging catches the issue before it reaches the live site. From experience, backups and changelog reviews save a lot of cleanup time.
What should I check before installing CPT UI?
Start by checking whether another plugin already does the same job. In most cases, overlap is what creates avoidable conflicts and performance issues. A common issue is installing a plugin because it looks convenient without checking the stack first. From experience, a short compatibility review avoids most of the pain later.