ACPT v2.0.67 - Custom Post Types WordPress Plugin
Trusted by more than 2000 customers Custom post types.
Related items
Related Custom Fields Plugins
Advanced Custom Fields Pro - WordPress Custom Fields Plugin
by Elliot Condon
Customise WordPress with powerful, professional and intuitive fields.
Toolset Types - WordPress Custom Fields And Post Types
by OnTheGoSystems
The Easiest Way to add Custom Types to WordPress.
ACF Views Pro - Display ACF Fields Using Shortcodes
by WPLake
WordPress Plugin Advanced Views Pro - Extended Control on How you Display ContentThe go-to plugin for displaying content and fields any way you like, relate, filter, sort and exclude.
Trusted by more than 2000 customers Custom post types. Simplified Power up your WordPress website with the superpowers of custom post types. Register new custom post types in seconds. Taxonomies. To another level Create and associate new taxonomies with few clicks. Expand WordPress functionality to the max. Option pages. Enrich WordPress Enrich your WordPress back-end with new option pages.
Build and manage easily complex admin panels for your users in minutes. Meta fields. Everywhere Create and use new meta fields everywhere with the most advanced meta field editor on the market. Build Forms. In few clicks Create and manage custom forms with a dedicated visual builder. Improve the user experience on your websites. Dynamic Blocks. With super powers Create and manage new Gutenberg dynamic blocks in seconds.
With full support for TWIG syntax. TRY LITE Upgrade to PRO Custom post types Taxonomies Option pages Meta fields Forms Dynamic Blocks Featured on The most viable alternative to the major players Meet ACPT, the most comprehensive dynamic data framework available on the market. Take your WordPress site to another level, create and manage custom post types, taxonomies, meta fields, forms and custom blocks with just few clicks.
COMPLETE FEATURE LIST Work with your favourite theme or plugin ACPT knows how important your favorite visual builder or theme is to you. That's why we are constantly working on integration with your favorite theme or plugin. Register new custom post types in seconds With ACPT, you can register a new custom post type in less than 30 seconds. Take full control of your website and easily become the master of your custom post types.
Show full descriptionShow less
Register new taxonomies in 3 clicks You can also register new taxonomies in one go with ACPT. Link the newly created taxonomies to custom post types with just one click. Create unlimited custom option pages Option pages are probably one of the most powerful WordPress features. With ACPT, you can create and manage new option pages in a single view in no time at all.
The most advanced Meta field manager Create and manage meta box fields with the most advanced meta field manager on the market. You can choose between more than 40 field types. And more to come! Manage WooCommerce product data ACPT has developed an integration specifically tailored to WooCommerce. You can create and manage the product data and the corresponding fields with just a few clicks!
Handle relationships between entities at ease Manage complex relationships between WordPress entities directly in the field manager in a smart, powerful and highly intuitive way. Create forms with an integrated visual builder Create your forms with a brand new, easy-to-use, visual drag-and-drop builder. Display them on your website with a simple shortcode.
Create dynamic blocks for Gutenberg Create new dynamic blocks in seconds. Be creative and use the TWIG syntax to build something awesome. Work with custom APIs and functions ACPT also has advanced features such as a 100% custom API dashboard and more than 60 PHP functions. You can manage and automate any ACPT operation. Import/Export your data ACPT allows you to import and export all settings in different formats (json, yaml or xml) with just a few clicks.
Is ACPT suitable for my needs? ACPT is designed to be used by all types of users and to fit the needs of every user. For users For users looking for a plugin to use in their personal projects easy to use and without the need for programming skills. Read more For agencies For web agencies looking for a solid, robust and affordable solution for their customers projects.
Read more For developers For every developer who wants to stop reinventing the wheel every day, saving tons of hours of work relying on solid ACPT APIs. Read more Loved by people. Trusted by users. Everyday more than 2000 use ACPT to build something awesome. Hear their voice: paradox says: ACPT Is Destined For Greatness! ACPT provides all of the features and more for a custom post type plugin.
And the support ... I needed some help combining the codes and literally got an instant response! Clearly ACPT is going to be a top tier choice for a custom post type plugin. bullcitywebdesign says: Amazing value and incredible support. I couldn’t be more impressed with the ACPT plugin! Not only is the tool incredibly powerful—easily matching everything ACF can do—but it does it all at a third of the price.
The interface is intuitive, the features are robust, and it’s clear that a lot of thought has gone into its development. Thomas says: Very efficient plugin Simple, fully customisable and very efficient. Try on 2 wordpress websites and quickly adopted like the missing tool for the development with oxygen builder. Oliver says: Great Alternative to metabox This plugin has a great developer that is working hard to compete with more established plugins such as Metabox and ACF.
Also, the developer is working hard on getting ACPT to be integrated with many different page builders. JellyBrain says: ACF who? ACPT is growing up.... FAST!!! ACPT has a brilliant interface and is almost matching in functionality with ACF, which is impressive considering the project's young age. Although Bricks integration wasn't available at the time of writing (it's in progress), I had no issues using ACPT in Bricks regardless. nhaque says: Early days but exciting tool Got this pretty early on as I missed on ACF and Metabox.
Exciting tool and the developments have been decent. I'm looking forward to the divi integration. Support has been responsive and helpful. haitran33 says: Working great Easy to use plugin, working great, 5 tacos for sure. Looking for more features soon on your plan. paradox says: ACPT Is Destined For Greatness! ACPT provides all of the features and more for a custom post type plugin.
And the support ... I needed some help combining the codes and literally got an instant response! Clearly ACPT is going to be a top tier choice for a custom post type plugin. bullcitywebdesign says: Amazing value and incredible support. I couldn’t be more impressed with the ACPT plugin! Not only is the tool incredibly powerful—easily matching everything ACF can do—but it does it all at a third of the price.
The interface is intuitive, the features are robust, and it’s clear that a lot of thought has gone into its development. Thomas says: Very efficient plugin Simple, fully customisable and very efficient. Try on 2 wordpress websites and quickly adopted like the missing tool for the development with oxygen builder. Oliver says: Great Alternative to metabox This plugin has a great developer that is working hard to compete with more established plugins such as Metabox and ACF.
Also, the developer is working hard on getting ACPT to be integrated with many different page builders. JellyBrain says: ACF who? ACPT is growing up.... FAST!!! ACPT has a brilliant interface and is almost matching in functionality with ACF, which is impressive considering the project's young age. Although Bricks integration wasn't available at the time of writing (it's in progress), I had no issues using ACPT in Bricks regardless. nhaque says: Early days but exciting tool Got this pretty early on as I missed on ACF and Metabox.
Exciting tool and the developments have been decent. I'm looking forward to the divi integration. Support has been responsive and helpful. haitran33 says: Working great Easy to use plugin, working great, 5 tacos for sure. Looking for more features soon on your plan. Build a lot for a fraction of the price of the major competitors on the market! Access to all the powerful plugin features.
Boost your WordPress website with the super powers of a complete dynamic data framework. Annual Lifetime Basic For individuals 29$ /year 1 site All features 1 year of updates 1 year of support 30 days Money Back Guarantee Annual renewal Upgrade to PRO now Professional Ideal for online business 49$ /year 5 sites All features 1 year of updates 1 year of support 30 days Money Back Guarantee Annual renewal Upgrade to PRO now Agency For freelances and agencies 99$ /year Unlimited sites All features 1 year of updates 1 year of support 30 days Money Back Guarantee Annual renewal Upgrade to PRO now All accounts come with full support and 30 days money-back guarantee. Get the full list of features ACPT proudly supports Purchasing Power Parity You said...support?
Do you need help? Feel free to ask a question and read the FAQs and the official ACPT documentation. Quick contacts Submit a support ticket for answers on Technical issues, bug reports, sales enquiries and accounting questions. OPEN TICKET Find an answer Find answers quickly from our comprehensive documentation covering sales & account questions, plugin functions & features and tutorials.
FAQs Docs
Recent releases
Release history
- #### Performance
- **License, plugin-version and ID-field-backfill options queried on every request** - These three tracking options were stored with `autoload=no`, forcing WordPress to issue a dedicated `SELECT` for each on literally every front-end and admin request instead of folding into its single bulk options query. Now stored autoloaded, with a one-time migration that fixes the flag on sites already storing these from an earlier version.
- **Settings table queried on every request without ever hitting the plugin's cache** - Reading the settings table happens during the plugin's own bootstrap, before its file-based query cache has been initialized, so this specific read could never benefit from it no matter how warm the cache was elsewhere. It now has its own lightweight cache, invalidated whenever a setting is saved.
- **`wp_enqueue_media()` running on every wp-admin screen** - ACPT called WordPress's media-library bootstrap function unconditionally on every `admin_enqueue_scripts`, triggering a `wp_posts` query on every wp-admin page for every plugin - not just ACPT's own screens. It's now only called on screens where ACPT actually registered assets.
- **Media library "date filter" dropdown query re-run on every `wp_enqueue_media()` call** - Hooked WordPress core's `media_library_months_with_files` filter (provided by core specifically to avoid this cost, see `core.trac.wordpress.org` ticket #31071) to cache the dropdown's month/year data instead of recomputing it with an uncached `wp_posts` scan every time.
- #### Security
- **REST API authentication** - `ACPT_Api_Auth::authenticate()` only verified that Basic Auth credentials or an API key belonged to *some* valid WordPress user, without checking any capability - any authenticated user (including a Subscriber) could call every "secured" REST v1 route. Now requires `manage_options`, matching the plugin's own AJAX proxy. Reported by Patchstack.
- **SQL injection** - WooCommerce product-data field cleanup built its `DELETE` queries by string-concatenating client-supplied IDs into a `NOT IN (...)` clause with no escaping; a crafted ID could delete every row of the field table, not just orphans. Rebuilt with prepared-statement placeholders. Reported by Patchstack.
- **Privilege escalation** - A public form submission could set a client-controlled `acpt_form_user_id`/`_post_id`/`_term_id` field to update an *existing* WordPress user/post/term instead of creating a new one, with no ownership or capability check - an anonymous "create new user" form submission could overwrite an administrator account. Added `current_user_can()` checks before any update.
- **PHP Object Injection** - Hardened all 30 `unserialize()`/`maybe_unserialize()` call sites across the plugin (form metadata, relation-field sync, box/field-rename sync, form/block/permission builders, WooCommerce and WP All Import integrations) to reject embedded objects, closing a gadget-chain risk originally reported by Patchstack against 2 of these sites.
- **Stored XSS** - The meta-field sanitizer's allowed-tags list admitted ` `, so `wp_kses`-based sanitization never actually stripped it from rich-text field output.
- #### Meta Fields
- **Site-wide crash from an invalid `save-meta-group` operator** - A `belongs` rule with a missing/empty operator could be persisted with an empty value and then crash *every* subsequent read of that structure (admin, front-end, REST, every Ability) as soon as it was re-hydrated from the database. The operator is now validated and invalid rules are rejected gracefully, both when saving and when reading a pre-existing row (Ticket #1182).
- **"Autoincrement" ID field never got a value outside wp-admin** - An ID-type meta field only ever generated its value inside the wp-admin edit-screen form; a post created via REST, the Abilities API, an import, or `wp_insert_post()` directly permanently had no value for that field. The value is now generated automatically on save regardless of how the post was created, and a one-time migration backfills every already-existing post on update (Ticket #1181).
- **`get_acpt_fields()` cross-box field collisions** - Fetching every field across a whole meta group (no specific box - the call ACPT's native Etch integration uses for `{options.acpt}`) could silently drop entire boxes' worth of data: fields were keyed by their position *within* their own box, which resets to 0 for every box, so a later box's fields overwrote an earlier box's fields at the same position (Ticket #1174).
- **Gallery field losing images on drag-reorder** - Dragging to reorder a Gallery field's images in wp-admin could silently drop entries: the preview only rendered a thumbnail for attachments that still resolved (e.g. not deleted from the media library since being selected), and reordering rebuilt the field's saved value from only the *rendered* thumbnails, discarding anything without one - occasionally emptying the field entirely. A Gallery field nested inside a Repeater/Flexible block had a second, more reliable trigger: reordering located the wrong
View changelog
- **Abilities API architecture** - Unified all ~41 abilities under a shared `AbstractAbility` base class (`src/Core/Ability/`), registered consistently through both the core WordPress Abilities API and the ACFW (agent-connector-for-wp) integration, with the same exception-handling, permission checks, and audit-log wrapping applied everywhere. Brings along the crash and data-loss fixes below.
- License page stuck unrecoverable after a site migration: when the stored activation id is no longer recognized by the license server (e.g. `Activation ID not found`), the React app silently discarded the error and always rendered the "Activate your license" screen with a dead (linkless) button, with no way to reach the "Deactivate license" action that would clear the stale local record. The fetch error is now surfaced and routes to the license details screen so it can be deactivated and re-activated normally.
- Fatal error on every request when license reconciliation can't reach acpt.io (e.g. cloned/staging domains) - the unguarded API call is now wrapped so a network failure degrades gracefully instead of fataling the whole site (Ticket #1164).
- CPT rewrite rules silently disabled when editing existing post types: the "Rewrite" toggle defaulted to unchecked for existing post types whose stored settings lacked an explicit `rewrite` key, so saving the form for any reason (e.g. just updating the front URL prefix) silently persisted `rewrite: false`, registering zero rewrite rules and 404ing the CPT - not fixable by flushing permalinks. Also hardens the `custom_rewrite`/front-URL-prefix priority check so a stale `custom_rewrite` value can no longer silently shadow the front URL prefix (regression of Ticket #1153, Ticket #1160).
- Image/media field values not saving when served from a different host (CDN, offloaded media, image accelerator, etc.) - attachment resolution now falls back to matching on the URL path alone when the host differs from the site's own upload base URL.
- Bricks Query Filter showed no checkbox options for POST_TYPE relation fields, and a cold indexer run could produce zero index rows; relational-loop dynamic data tags also resolved against the archive's queried object instead of the loop target (#1161, #1165).
- Site-wide crash (front-end, admin, REST, AJAX) from a missing/empty location-rule operator on `save-meta-group` - the operator is now validated and invalid rules are rejected gracefully.
- Partial updates across 8 ability families (Table, MetaField, FormField, DynamicBlock, TableGroup, Form, MetaBox, TableRecord) were silently deleting data the payload didn't mention - most seriously, omitting `columns` on a Table update deleted every column/index/foreign-key definition, and the next schema sync then dropped the corresponding database columns. All 8 now merge onto the existing record instead of rebuilding it from scratch.
- `save-meta-field` matched against the wrong data shape and never actually found the field being edited, so non-rename edits silently no-op'd and renames created orphan duplicates.
- ACFW's audit-logging/MCP registration always lost a boot-order race against the core Abilities API integration, so its decoration silently never applied when both were active.
- ACPT abilities were missing `meta.mcp.public`, so the official `wordpress/mcp-adapter` package (used by ACFW and other MCP host plugins) rejected every call with "not exposed via MCP" even though the ability registered fine.
View changelog
- Integration with the [Abilities API](https://docs.acpt.io/abilities-api), including output-schema fixes for `save-post-type` and 9 other providers whose output validation was broken.
- `append_acpt_meta_field_value()` function/ability to append a single Repeater row without resending existing ones - new `AppendMetaFieldRowCommand`, wired into the Abilities API as `acpt/append-meta-field-value`.
- `SQRT`, `ABS`, `MOD`, `MEDIAN`, `COUNT`.
- telemetry insight keys (DB engine, multisite, active theme, PHP memory limit, WooCommerce version, feature usage counters) plus a deactivation ping.
- Table field `Maths` singleton memoization (was comparing flattened data against raw input, so caching never worked); malformed formulas (e.g. `=(ROUND("abc",2))`) now return a graceful error instead of crashing the live AJAX formula editor.
- CodeMirror text overflow in admin meta field editors - long lines/URLs now wrap instead of overflowing the layout.
- Etch fatal error when an Image field is nested inside a Repeater (`WPAttachment` private property access via `property_exists()`).
- Dynamic blocks not appearing/rendering in the FSE site editor.
- REST block-renderer live-preview error when inserting a dynamic block in the FSE site editor.
- ACPT loop fields empty on Bricks top-level term-archive templates.
- Front URL prefix causing 404s on Custom Post Type permalinks (Ticket #1153).
- WPML custom field translations getting stuck in one language (Ticket #1118).
- Image/Audio/Video/File field values silently not persisting to `wp_postmeta` via the REST save path: `WPAttachment::fromUrl()` now resolves attachments through query-string, URL-encoding, and `-scaled` suffix variants instead of only an exact `_wp_attached_file` match, and `ACPT_Api_Rest_Fields::updateCallback()` now returns a `WP_Error` when a field fails to save instead of silently discarding the failure.
- `Request`: replaced ambiguous `has()` with explicit `hasGet()`/`hasPost()`; `all()` now delegates to `requestAll()`.
Frequently asked questions
Is ACPT GPL licensed?
What is the latest version of ACPT?
How much does ACPT cost on GPLCoffee?
Which WordPress versions does ACPT support?
Is ACPT safe to download?
Auto-updates included
Install it once, update automatically.
The GPLC Connector installs this plugin from your wp-admin and rolls out new versions to your connected sites - up to 25. Included with 12-month and Geek Lifetime plans (plus legacy 6-month).