# Custom Fields vs External Field Plugin 6.8.6

Scope: Custom Fields only. CPT Builder, Taxonomy Builder, Options Page Builder, and other WP PowerSuite modules are separate modules and are not included here.

Reference schema source: `external-field-plugin/schemas/field-fragments/**/*.schema.json`.

## Existing WP PowerSuite Field Engines

| WP PowerSuite type | Reference equivalent | Current status |
| --- | --- | --- |
| `text` | `text` | Supported. Added reference-compatible character limit support. |
| `textarea` | `textarea` | Supported with character limit, row count, placeholder, default value, and new-lines output formatting. Format/pattern checks are intentionally hidden for reference parity. |
| `number` | `number` | Supported with min, max, step validation. |
| `range` | `range` | Supported with min, max, step validation. |
| `email` | `email` | Supported. Added character limit support. |
| `phone` | No direct Reference core equivalent | Supported as a WP PowerSuite convenience type. |
| `url` | `url` | Supported with default value and placeholder. Character limit, format checks, and before/after are intentionally hidden for reference parity. |
| `password` | `password` | Supported with placeholder and before/after. Default value, character limit, and format checks are intentionally hidden for reference parity. |
| `date` | `date_picker` | Supported with native HTML date input, display format, return format, first-day setting, default-current behavior, and browser-tested settings persistence. |
| `time` | `time_picker` | Supported with native HTML time input, stricter time validation, display format, and return format. Default-current is intentionally hidden for reference parity. |
| `datetime` | `date_time_picker` | Supported with native HTML datetime input, display format, return format, first-day setting, and default-current behavior. |
| `color` | `color_picker` | Supported with string/array return formats, opacity-enabled rgba values, strict hex/rgba palette presets, custom/theme.json palette sources, color-wheel visibility control, browser-tested settings persistence, and browser-tested runtime theme palette/no-wheel behavior. |
| `toggle` | `true_false` | Supported with default value, message, and configurable on/off text. |
| `select` | `select` | Supported. Added allow-empty, placeholder, enhanced UI/AJAX/create/save option settings, value/label/array return formats, and save/reload coverage. Full Select2-style remote querying is still a later endpoint/UI pass. |
| `radio` | `radio` | Supported. Added allow-empty, vertical/horizontal layout, value/label/array return formats, and reference-compatible other choice/save-other settings with custom value rendering. |
| `checkbox` | `checkbox` | Supported. Added vertical/horizontal layout, value/label/array return formats, toggle-all, and reference-compatible custom value/save-custom settings with custom value rendering. |
| `button_group` | `button_group` | Supported as a single-choice segmented control with choices, default value, allow-empty, sanitization, validation, REST exposure, and value/label/array return formats. |
| `nav_menu` | `nav_menu` | Supported as a menu selector with allow-empty, id/object/rendered-menu return formats, safe container setting, REST integer schema, Gutenberg menu choices, validation, and output formatting. |
| `message` | `message` | Supported with reference-compatible new-lines and escape mode settings. |
| `separator` | `separator` | Supported as a display-only divider that does not save meta. |
| `output` | `output` | Supported as a display-only safe HTML output field that does not save meta. Unsafe tags are stripped on save/render. |
| `tab` | `tab` | Supported with reference-compatible placement, endpoint, selected-state metadata, and runtime tab-panel switching on post/term edit screens. |
| `accordion` | `accordion` | Supported with reference-compatible open, multi-expand, endpoint metadata, and runtime accordion show/hide behavior on post/term edit screens. |
| `icon_picker` | `icon_picker` | Supported with reference-compatible source tabs for Dashicons, media library images, and URL icons, plus string/array return formats, sanitization, validation, REST exposure, display rendering, and Gutenberg sidebar editing. |
| `google_map` | `google_map` | Supported as a structured location field with address, latitude, longitude, zoom, default center/zoom/height settings, classic and Gutenberg editor map previews/open-in-Maps actions, REST object schema, validation, and Google Maps output links. Google Places-style API-key powered search is not implemented. |
| `wysiwyg` | `wysiwyg` | Supported with rows, tabs, full/basic toolbar, media upload toggle, delayed initialization metadata, sanitization, REST exposure, and display output. |
| `oembed` | `oembed` | Supported with URL input, width/height settings, live preview sizing, sanitization, REST exposure, and embed output formatting. |
| `link` | `link` | Supported with array/url return formats. |
| `image` | `image` | Supported with id/url/array return formats, picker library filtering, MIME, file size, dimension validation, preview size control, integer REST schema, Gutenberg clear-state handling, and browser-tested settings persistence. |
| `gallery` | `gallery` | Supported with id/url/array return formats, picker library filtering, MIME, file size, dimension validation, min/max image count, preview size, insert position, and browser-tested settings persistence. |
| `file` | `file` | Supported. Added id/url/array return formats, picker library filtering, MIME, file size validation, integer REST schema, and Gutenberg clear-state handling. |
| `post_object` | `post_object` | Supported. Added id/object return formats, allow-empty control, post-type filtering, taxonomy filtering, and server-side search restriction hardening. |
| `relationship` | `relationship` | Supported as a searchable multi-post relationship field with id/object return formats, post-type filtering, taxonomy filtering, post-status filtering, reference-compatible filter/element settings, classic and Gutenberg dynamic post-type/taxonomy picker filters, featured-image selected-item previews, min/max item validation, REST array schema, bidirectional sync, and a browser-tested two-pane selected-items UI with remove controls. |
| `page_link` | `page_link` | Supported as a post/page selector with ID/URL return formats, multiple selection, post-type filtering, taxonomy filtering, allow-empty, and reference-compatible archive links for Home/public post type archives. Archive choices are browser-tested in the builder, editor dropdown, search, and selection flow. |
| `term` | `taxonomy` | Supported under WP PowerSuite name `term` with id/object return formats, allow-empty control, reference-compatible select, multi-select, radio, and checkbox display modes, plus add/load/save terms. Browser-tested term creation from the post editor adds and selects the new term without module errors. |
| `user` | `user` | Supported. Added id/object/array return formats, allow-empty control, and role filtering. |
| `group` | `group` | Supported as a single nested object with sub-field rendering, sanitization, REST object schema, builder sub-field controls, and reference-compatible block/table/row layout settings. |
| `repeater` | `repeater` | Supported with sub-fields, min/max, button label, reference-compatible block/table/row layout, row collapse controls, drag handles, sortable rows, add/remove limit feedback, collapsed preview labels, rows-per-page pagination, and browser-tested row reindexing/preview/pager behavior. |
| `flexible_content` | `flexible_content` | Supported with structured layouts, layout sub-fields, field min/max, per-layout display/min/max, button label, reference-compatible block/table/row layout, row collapse controls, drag handles, sortable rows, and browser-tested add/remove/reindex/per-layout max behavior. Layout choice buttons now provide selected counts and max-limit disabled states. |
| `clone` | `clone` | Supported with reference-compatible multi-source picker, field/group source selection, group/seamless display, block/table/row layout classes, prefix labels, prefix names, save/reload persistence, self-group recursion protection, clone-of-clone exclusion, and browser-tested post editor rendering. |

## Reference Field Types Not Yet Implemented

All Reference 6.8.6 field types now have at least a WP PowerSuite implementation or partial implementation in the Custom Fields module.

## Highest Risk Gaps To Fix Next

The remaining reference parity limitation is Google Places-style API-key powered search for the Google Map field. Continue with broad regression hardening, accessibility, and security review before calling the module production ready.
