=== VX Framework ===
Contributors: vxframework
Tags: custom fields, custom post types, dynamic data, ai, mcp
Requires at least: 6.9
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 1.2.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

The data modeling layer for agentic WordPress. Model your content once - use it in the block editor, any builder, headless, or with AI.

== Description ==

VX Framework is the data model layer for WordPress. You describe the
structures your site needs. The framework supplies the editing interface,
the storage, and the validation.

Create fieldsets in the UI, in PHP, as JSON, or through an AI
assistant. Assign them to posts, terms, or users. Bind the values into
the block editor. The same typed model is what your theme and your
agents read.

= Features =

* Fieldsets with Locations, conditional logic, and revisions
* 40 field types, including Repeater, Section and Tabs
* Custom post types and taxonomies
* Dynamic data for the block editor with VX Script
* AI-ready: MCP, WordPress abilities, and WP-CLI
* Config as code: PHP and JSON
* Bricks Builder integration
* Built-in documentation

Site: [vxframework.com](https://vxframework.com/)
Docs: [docs.vxframework.com](https://docs.vxframework.com/)

= Create fieldsets. Assign them anywhere. =

A fieldset is a named group of fields - the building block of your
content model. You design it once and reuse it.

**Locations** decide where it appears: a post type (including ones you
did not register), a taxonomy, or a user profile, optionally limited by
role. Conditional logic, revisions, and import/export live in the same
editor.

Create the fieldset visually, describe it to an assistant over MCP, or
define it in Local JSON or PHP and keep it in version control.

= Field types for any model =

From text and media to nested fields. Every field is typed, reusable,
and ready for the block editor and your theme.

* **Input** - Text, Textarea, Rich text, Number, Stepper, Email,
  URL, Phone, Password, Color, List, Slider, Range slider, Code
* **Choice** - Select, Multiselect, Checkboxes, Radio Buttons,
  Button Group, Switcher
* **Dates** - Date, Date range, Time, Date & Time
* **Media** - Image, Gallery, SVG, Video, Audio
* **Relational** - Taxonomy, Select Post, Select User
* **Composite** - Group, Repeater
* **Layout** - Section, Tabs, UI Heading, UI Spacer, UI Notice,
  UI HTML

= One model, any front-end =

Use VX with the block editor, Bricks, or a custom
theme. In templates, PHP helpers and hooks read typed field values.
The model does not change when the front-end does.

= Config as code =

Register post types, taxonomies, and fieldsets as JSON or PHP in your
theme or plugin, and keep your model in version control. Edits made
in the dashboard can be synced back to the files. The files describe
structure only, never content, so they move safely between
development, staging, and production.

= Dynamic data for the block editor and page builders =

Model with VX, build with the block editor.

Bind any field to any block with VX tags on the Block Bindings API.
Shape values with **VX Script** - tags, modifiers, and chainable
expressions. Loop a repeater or a gallery so each row renders as its
own block. Show or hide any block with visibility rules: user, content,
request, time, or a VX Script expression.

Building with Bricks instead? The same fields
appear in the builder's dynamic data picker and query loops.

= Content editing that feels native =

Navigate fieldsets from a collapsible sidebar. Edit on the canvas or in
form view. Everything stays in sync.

= Agentic WordPress, out of the box =

A typed data model agents can read and write through MCP and WordPress
abilities. The same catalog is available
from WP-CLI. The MCP endpoint stays off until you enable it. Reading and
writing are separate permissions - you grant each one yourself.

= VX Framework Pro =

VX Framework Pro is a separate plugin, available through [vxframework.com](https://vxframework.com/).

Same model, more field types and modules.

[https://www.youtube.com/watch?v=z7I0jxV4Dn0&rel=0](https://www.youtube.com/watch?v=z7I0jxV4Dn0&rel=0)

* **Fields** - Markdown, Files, Clone, Post Relation, User Relation, Recurring Date, Field Table, Content Sections, Location, Area
* **Option Pages** - site-wide settings screens built from fieldsets
* **Dictionaries** - shared choice lists, plus built-in lists of countries, currencies and units
* **REST API** - typed, access-controlled field values for apps and headless front ends
* **Shader** - a local development tool for building WordPress themes with AI and one-click deploy.
* **Premium support** - direct support from the VX team

Get VX Framework Pro at [vxframework.com](https://vxframework.com/pro/).

= Tools =

System information, Meta Watch, field key conflict detection, and
import/export.

= Documentation =

The user guide and the developer documentation ship inside the plugin
and are read from the dashboard. They cover what is in this package,
and they match the version installed on the site, with no connection
required. The same documentation is also online at
[docs.vxframework.com](https://docs.vxframework.com/).

== Installation ==

1. Install through Plugins → Add New, or upload the folder to
   `/wp-content/plugins/vx-framework`.
2. Activate the plugin through the Plugins screen.
3. Open **VX** in the admin menu and create your first fieldset.

== Frequently Asked Questions ==

= Does it work with the block editor? =

Yes. Field values are available as dynamic data inside the block
editor. You can bind them to blocks, loop them, and drive visibility
from the same model.

= Can an AI assistant work with my model? =

Yes. VX registers its operations as WordPress abilities and can serve
them over MCP. The endpoint stays off until you enable it.

= Can I define the model in code? =

Yes. Register fieldsets, post types, and taxonomies in PHP or JSON
in your theme or plugin. The dashboard stays usable for everything
that is not in code.

= Does it work with Bricks Builder? =

Yes. When Bricks Builder is active, VX fields appear in its dynamic data
picker.

== External services ==

This plugin does not connect to any external service. Its fonts and other
assets are served from the plugin itself. The admin links to two websites,
both from cards under Settings: vxframework.com from the VX Framework Pro
card, and getshader.com from the Shader card. Neither link opens unless
clicked.

== Source code ==

The admin interface is a compiled Vue application. The complete, unminified
source it was built from ships in this package in `client/src`, together with
the `package.json`, `package-lock.json` and `vite.config.js` that build it.
Running

    cd client && npm install && npm run build

rebuilds `client/dist` from those sources, with the configuration exactly as it
ships - the same entry points and the same chunks, from the same dependency
versions the lockfile pins. Nothing in the package is obfuscated.

The PHP libraries in `app/vendor` ship as readable source under their own
licences, each one named with its version and its licence file in
`LICENSE-THIRD-PARTY.txt`.

== Changelog ==

= 1.2.0 =
* New: Type into an entry's fields straight from its template when you edit the entry with the template shown.
* Improved: Site Editor previews. A static front page previews that page, templates named for a post type or declared in theme.json preview a matching post, and your preview choice applies to every template.
* Improved: Bound blocks, Query Loop cards and @site and @user tags show their values in the editor of every post type.
* Improved: Date and time pickers follow each user's profile language, including date order and 12- or 24-hour time.
* Improved: The post type Editor tab explains when the Block editor setting can't take effect.
* Fixed: Text, textarea, list and choice values keep % sequences such as %date%, and very long values save quickly.
* Fixed: Content written by AI assistants keeps the backslashes in block markup.
* Fixed: Opening the Dynamic tags dialog no longer marks the post or template as changed.
* Fixed: A cover bound to an image shows the image. @post(edit_url) previews as the edit link.
* Fixed: Reading a post's values lists a field that was never saved under `omitted`, and writing null clears a field.
* Changed: A post type's archives label defaults to its plural name.
* Developers: Rules added through `vxframework/fieldsets/validation_rules` are checked on save, as warnings. `on_user()` in PHP blueprints takes no roles; use a `user_role` condition.

= 1.1.0 =
* New: Section and Tabs layout fields. Group fields in a box, or show them as tabs or an accordion, and show or hide a whole set with conditional logic. Fields inside keep their keys and stored values, so arranging them never moves data.
* New: Arrange fields into sections and tabs in the fieldset builder by dragging, from a field's menu, or several selected fields at once. The builder remembers which lists you folded or opened.
* New: The `vx-framework/move-fields` ability lets AI assistants move fields into, out of and between sections and tabs.
* New: Taxonomy term, Specific term and Parent term location rules can match by slug, so they keep working when your config moves to another site.
* Improved: The MCP connection now supports clients on MCP 2026-07-28 as well as 2025-11-25 and earlier versions, and works alongside the MCP Adapter plugin. The bundled MCP Adapter is updated to 0.7.1.

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.2.0 =
Edit template-bound fields in place, better Site Editor previews, date pickers in each user's language, and fixes for text values that contain %.

= 1.1.0 =
Adds Section and Tabs layout fields, slug-based term location rules, and support for MCP 2026-07-28 clients.

= 1.0.0 =
Initial release of VX Framework.