GoBuildWP

Custom dataPro

ACPT MCP for post types, meta groups and option pages

ACPT models custom fields in three levels rather than two, and that shapes every ACPT MCP call GoBuildWP Pro makes. A meta group holds meta boxes, which are the tabs or panels in the editor; each box holds the fields. The abilities expose that hierarchy as it is, write values through ACPT's own save function, and tell the agent when a definition it just created will not be visible yet.

AI clientyour-site.comVerify site policy

Create a Property post type with a General tab (price, bedrooms) and a Location tab (address), then fill it on the first listing.

  1. wppilot/acpt-check-setupRead

    Reports version, the minimum check, license_active and counts of existing types, taxonomies, groups and option pages.

  2. wppilot/acpt-create-post-typeWrite

    Saves the property type; ACPT registers it with WordPress on the next init, not during this request.

  3. wppilot/acpt-get-field-type-schemaRead

    Returns the advanced options for Number before the group is defined.

  4. wppilot/acpt-create-field-groupWrite

    Creates one meta group with two meta boxes, general and location, attached to property.

  5. wppilot/create-postWrite

    On a later request after property registration, creates the draft listing and retains the returned post ID before writing fields.

  6. wppilot/acpt-write-valuesConfirm first

    Writes price and bedrooms under the general box and the address under the location box of the listing post, which was created in a later request; results are per field.

Proposed sequence from source declarations; not a recorded task or proof of client compatibility. Inspect saved state and browser or provider results separately.
Edition
Pro
Abilities
24
Requires
WordPress 6.9+, PHP 8.0+, ACPT 2.0.52+

Data model

ACPT's own tables, and meta for values

ACPT keeps its definitions in its own wp_acpt_* tables: post types, taxonomies, meta groups with their boxes and fields, and option pages. A separate wp_acpt_belong table records which post types, taxonomies or option pages each meta group belongs to. There is no PHP-registration route, so every record the abilities list is editable.

Field values are written with save_acpt_meta_field_value(), so ACPT's hooks and its type-specific serialisation for files, dates and repeaters run. ACPT's own site says meta data goes to WordPress post meta by default. Targets are a post, term or user by numeric id, or an option page by its menu slug; ACPT does not store meta on comments.

Because values are addressed as box and field, the write shape nests each field value under its box name, then its field name. An agent that thinks in flat ACF-style groups has to know which box a field sits in first, which is what the schema read with include_fields is for.

Limits

ACPT limits worth knowing before a write

  • Every definition change (post type, taxonomy, meta group, option page) lands in ACPT's own tables and is recorded without an undo. Value writes to a post target can be rolled back.
  • Option pages save without a valid ACPT licence, but the menu page only appears in wp-admin when the licence is valid and pages are enabled; values on them still read and write.
  • Edits patch top-level keys but replace arrays: sending meta_boxes, supports or labels replaces the whole list, so fetch the current state first.
  • Deleting a post type leaves its posts in wp_posts under an unregistered type unless delete_posts is true; deleting a meta group leaves the stored values behind.
  • Forms, dynamic blocks, datasets and ACPT's WooCommerce features are not exposed.

Worked example

Modelling a listing type end to end

Expected outcome to verify on the installed stack; this sequence has not been recorded as a runtime test.

The listing opens with two tabs of filled fields. Creating the post in the same request as the post type fails with Invalid post type, because the registration has not run yet, so the steps have to be split. The type and group definitions cannot be undone from the change log; the value write can.

After registration and the next init request, create the post through the shared create-post operation and retain its returned ID before acpt-write-values. Verify live capabilities and field-schema editability, then reread the saved values.

  1. acpt-check-setup

    Reports version, the minimum check, license_active and counts of existing types, taxonomies, groups and option pages.

  2. acpt-create-post-type

    Saves the property type; ACPT registers it with WordPress on the next init, not during this request.

  3. acpt-get-field-type-schema

    Returns the advanced options for Number before the group is defined.

  4. acpt-create-field-group

    Creates one meta group with two meta boxes, general and location, attached to property.

  5. create-post

    On a later request after property registration, creates the draft listing and retains the returned post ID before writing fields.

  6. acpt-write-values

    Writes price and bedrooms under the general box and the address under the location box of the listing post, which was created in a later request; results are per field.

Working with ACPT

Connect Claude to ACPT and read the model first

An ACPT MCP session goes better when the first ten minutes are read-only. acpt-check-setup reports the ACPT version, whether it meets the 2.0.52 floor GoBuildWP Pro requires, whether the ACPT licence is active and how many post types, taxonomies, meta groups and option pages exist. acpt-list-post-types then gives each type's post_count, and acpt-list-field-groups can be filtered by what a group belongs to, so a question such as 'which meta groups are attached to the property type' is one call with belongs_to customPostType and find property.

Ask for acpt-get-post-type with include_meta_groups set when you want the whole picture of one type in a single answer. Under the Read Only profile all of this works, and none of it is logged as a change.

Choosing ACPT field types before the group exists

ACPT's type names are case-sensitive and more granular than most field plugins: Post, PostObject and PostObjectMulti are separate types, as are Image, Gallery and ImageSlider, and Address and AddressMulti. The list also carries Currency, Length and Weight, plus Barcode, QRCode, Rating and Table. A payload that says text instead of Text is not the same request.

That is why acpt-get-field-type-schema exists. Calling it for each type the agent plans to use returns the advanced options that type accepts, and the agent can then write a meta group payload that ACPT does not have to guess about. It costs one read per type and avoids a group that saves but behaves differently in the editor.

How an ACPT write can half succeed

acpt-write-values returns a result per field with status ok or error rather than one verdict for the batch. If a listing gets price, bedrooms and address in one call and the address is malformed, price and bedrooms can still be saved. The agent should read the results array and report the failures by box and field name, then re-run only those fields, instead of assuming nothing changed.

The target address also differs by object. Posts, terms and users take numeric IDs; an option page takes its menu_slug string. ACPT keeps no meta on comments, so a comment target is not available for values even though a meta group can name comments in its location rules.

  • Write to a post target when you can: those value writes can be rolled back from the change log.
  • For bulk work across many posts, fields-bulk-update-values accepts ACPT fields addressed as box_name.field_name, with a dry run first.
  • Read the values back with acpt-read-values for the same group and boxes before telling anyone the job is done.

Slugs, reserved names and retiring a type

acpt-create-post-type rejects WordPress's reserved slugs, including post, page, attachment, wp_block and wp_navigation, and the post type name has to stay within twenty lowercase characters. Choose the slug as if it were permanent: the editing abilities can change labels and settings, but content stored under an old slug does not move by itself.

When a type is no longer wanted, the default delete removes ACPT's definition and leaves every post in wp_posts under a type that nothing registers. Passing delete_posts true removes those posts too, and nothing in the change log brings them back. Take a backup, export what you need, and treat that flag as a separate decision from removing the definition.

Questions

ACPT questions

Why doesn't the ACPT option page my agent created show in the admin menu?

ACPT only registers the menu page when its licence is valid and pages are enabled. The record exists and its values can be read and written through the abilities, so activating the licence makes it appear.

What is the difference between a meta group, a meta box and a field in ACPT?

The group is the container attached to a post type, taxonomy or option page; boxes are the panels or tabs inside it; fields are the inputs. Values are addressed by box and field name together.

Why does creating a post fail right after the agent creates the post type?

ACPT registers post types and taxonomies on the init hook. Within the same request the type does not exist yet, so the post insert has to happen in a separate call.

Can the agent remove an ACPT post type together with its posts?

Only when it passes delete_posts=true, which is a permanent delete. By default the definition goes and the posts stay, orphaned.

Where these facts come from

GoBuildWP behaviour is taken from the plugin source and the ability reference; third-party details from the vendor documentation below, checked by the GoBuildWP team.

ACPT is a separate product; no partnership or endorsement is implied.

Try it on ACPT in Read Only first