{"id":368551,"date":"2026-10-06T18:05:50","date_gmt":"2026-10-06T18:05:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vx-framework\/"},"modified":"2026-10-26T18:14:49","modified_gmt":"2026-10-26T18:14:49","slug":"vx-framework","status":"publish","type":"plugin","link":"https:\/\/vi.wordpress.org\/plugins\/vx-framework\/","author":23558043,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.1.3","requires":"6.9","requires_php":"8.1","requires_plugins":null,"header_name":"VX Framework","header_author":"27collective","header_description":"The data modeling layer for agentic WordPress.","assets_banners_color":"f6f6f6","last_updated":"2026-10-26 18:14:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/vxframework.com\/","header_author_uri":"https:\/\/27collective.net","rating":4.2,"author_block_rating":0,"active_installs":20,"downloads":530,"num_ratings":5,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"vxframework","date":"2026-10-06 18:05:27","revision":3731346},"1.1.0":{"tag":"1.1.0","author":"vxframework","date":"2026-10-19 19:35:01","revision":3755430},"1.2.0":{"tag":"1.2.0","author":"vxframework","date":"2026-10-26 18:14:49","revision":3767075}},"upgrade_notice":{"1.2.0":"<p>Edit template-bound fields in place, better Site Editor previews, date pickers in each user&#039;s language, and fixes for text values that contain %.<\/p>","1.1.0":"<p>Adds Section and Tabs layout fields, slug-based term location rules, and support for MCP 2026-07-28 clients.<\/p>","1.0.0":"<p>Initial release of VX Framework.<\/p>"},"ratings":{"1":1,"2":0,"3":0,"4":0,"5":4},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3731347,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3731347,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3731347,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3731603,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3731603,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2353,2010,1487,219474,242115],"plugin_category":[],"plugin_contributors":[284764],"plugin_business_model":[],"class_list":["post-368551","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-custom-fields","plugin_tags-custom-post-types","plugin_tags-dynamic-data","plugin_tags-mcp","plugin_contributors-vxframework","plugin_committers-vxframework","plugin_support_reps-albionselimaj","plugin_support_reps-arianc27","plugin_support_reps-blerjanwp"],"banners":{"banner":"https:\/\/ps.w.org\/vx-framework\/assets\/banner-772x250.png?rev=3731603","banner_2x":"https:\/\/ps.w.org\/vx-framework\/assets\/banner-1544x500.png?rev=3731603","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/vx-framework\/assets\/icon.svg?rev=3731347","icon":"https:\/\/ps.w.org\/vx-framework\/assets\/icon.svg?rev=3731347","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>VX Framework is the data model layer for WordPress. You describe the\nstructures your site needs. The framework supplies the editing interface,\nthe storage, and the validation.<\/p>\n\n<p>Create fieldsets in the UI, in PHP, as JSON, or through an AI\nassistant. Assign them to posts, terms, or users. Bind the values into\nthe block editor. The same typed model is what your theme and your\nagents read.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Fieldsets with Locations, conditional logic, and revisions<\/li>\n<li>40 field types, including Repeater, Section and Tabs<\/li>\n<li>Custom post types and taxonomies<\/li>\n<li>Dynamic data for the block editor with VX Script<\/li>\n<li>AI-ready: MCP, WordPress abilities, and WP-CLI<\/li>\n<li>Config as code: PHP and JSON<\/li>\n<li>Bricks Builder integration<\/li>\n<li>Built-in documentation<\/li>\n<\/ul>\n\n<p>Site: <a href=\"https:\/\/vxframework.com\/\">vxframework.com<\/a>\nDocs: <a href=\"https:\/\/docs.vxframework.com\/\">docs.vxframework.com<\/a><\/p>\n\n<h4>Create fieldsets. Assign them anywhere.<\/h4>\n\n<p>A fieldset is a named group of fields - the building block of your\ncontent model. You design it once and reuse it.<\/p>\n\n<p><strong>Locations<\/strong> decide where it appears: a post type (including ones you\ndid not register), a taxonomy, or a user profile, optionally limited by\nrole. Conditional logic, revisions, and import\/export live in the same\neditor.<\/p>\n\n<p>Create the fieldset visually, describe it to an assistant over MCP, or\ndefine it in Local JSON or PHP and keep it in version control.<\/p>\n\n<h4>Field types for any model<\/h4>\n\n<p>From text and media to nested fields. Every field is typed, reusable,\nand ready for the block editor and your theme.<\/p>\n\n<ul>\n<li><strong>Input<\/strong> - Text, Textarea, Rich text, Number, Stepper, Email,\nURL, Phone, Password, Color, List, Slider, Range slider, Code<\/li>\n<li><strong>Choice<\/strong> - Select, Multiselect, Checkboxes, Radio Buttons,\nButton Group, Switcher<\/li>\n<li><strong>Dates<\/strong> - Date, Date range, Time, Date &amp; Time<\/li>\n<li><strong>Media<\/strong> - Image, Gallery, SVG, Video, Audio<\/li>\n<li><strong>Relational<\/strong> - Taxonomy, Select Post, Select User<\/li>\n<li><strong>Composite<\/strong> - Group, Repeater<\/li>\n<li><strong>Layout<\/strong> - Section, Tabs, UI Heading, UI Spacer, UI Notice,\nUI HTML<\/li>\n<\/ul>\n\n<h4>One model, any front-end<\/h4>\n\n<p>Use VX with the block editor, Bricks, or a custom\ntheme. In templates, PHP helpers and hooks read typed field values.\nThe model does not change when the front-end does.<\/p>\n\n<h4>Config as code<\/h4>\n\n<p>Register post types, taxonomies, and fieldsets as JSON or PHP in your\ntheme or plugin, and keep your model in version control. Edits made\nin the dashboard can be synced back to the files. The files describe\nstructure only, never content, so they move safely between\ndevelopment, staging, and production.<\/p>\n\n<h4>Dynamic data for the block editor and page builders<\/h4>\n\n<p>Model with VX, build with the block editor.<\/p>\n\n<p>Bind any field to any block with VX tags on the Block Bindings API.\nShape values with <strong>VX Script<\/strong> - tags, modifiers, and chainable\nexpressions. Loop a repeater or a gallery so each row renders as its\nown block. Show or hide any block with visibility rules: user, content,\nrequest, time, or a VX Script expression.<\/p>\n\n<p>Building with Bricks instead? The same fields\nappear in the builder's dynamic data picker and query loops.<\/p>\n\n<h4>Content editing that feels native<\/h4>\n\n<p>Navigate fieldsets from a collapsible sidebar. Edit on the canvas or in\nform view. Everything stays in sync.<\/p>\n\n<h4>Agentic WordPress, out of the box<\/h4>\n\n<p>A typed data model agents can read and write through MCP and WordPress\nabilities. The same catalog is available\nfrom WP-CLI. The MCP endpoint stays off until you enable it. Reading and\nwriting are separate permissions - you grant each one yourself.<\/p>\n\n<h4>VX Framework Pro<\/h4>\n\n<p>VX Framework Pro is a separate plugin, available through <a href=\"https:\/\/vxframework.com\/\">vxframework.com<\/a>.<\/p>\n\n<p>Same model, more field types and modules.<\/p>\n\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=z7I0jxV4Dn0&amp;rel=0\">https:\/\/www.youtube.com\/watch?v=z7I0jxV4Dn0&amp;rel=0<\/a><\/p>\n\n<ul>\n<li><strong>Fields<\/strong> - Markdown, Files, Clone, Post Relation, User Relation, Recurring Date, Field Table, Content Sections, Location, Area<\/li>\n<li><strong>Option Pages<\/strong> - site-wide settings screens built from fieldsets<\/li>\n<li><strong>Dictionaries<\/strong> - shared choice lists, plus built-in lists of countries, currencies and units<\/li>\n<li><strong>REST API<\/strong> - typed, access-controlled field values for apps and headless front ends<\/li>\n<li><strong>Shader<\/strong> - a local development tool for building WordPress themes with AI and one-click deploy.<\/li>\n<li><strong>Premium support<\/strong> - direct support from the VX team<\/li>\n<\/ul>\n\n<p>Get VX Framework Pro at <a href=\"https:\/\/vxframework.com\/pro\/\">vxframework.com<\/a>.<\/p>\n\n<h4>Tools<\/h4>\n\n<p>System information, Meta Watch, field key conflict detection, and\nimport\/export.<\/p>\n\n<h4>Documentation<\/h4>\n\n<p>The user guide and the developer documentation ship inside the plugin\nand are read from the dashboard. They cover what is in this package,\nand they match the version installed on the site, with no connection\nrequired. The same documentation is also online at\n<a href=\"https:\/\/docs.vxframework.com\/\">docs.vxframework.com<\/a>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin does not connect to any external service. Its fonts and other\nassets are served from the plugin itself. The admin links to two websites,\nboth from cards under Settings: vxframework.com from the VX Framework Pro\ncard, and getshader.com from the Shader card. Neither link opens unless\nclicked.<\/p>\n\n<h3>Source code<\/h3>\n\n<p>The admin interface is a compiled Vue application. The complete, unminified\nsource it was built from ships in this package in <code>client\/src<\/code>, together with\nthe <code>package.json<\/code>, <code>package-lock.json<\/code> and <code>vite.config.js<\/code> that build it.\nRunning<\/p>\n\n<pre><code>cd client &amp;&amp; npm install &amp;&amp; npm run build\n<\/code><\/pre>\n\n<p>rebuilds <code>client\/dist<\/code> from those sources, with the configuration exactly as it\nships - the same entry points and the same chunks, from the same dependency\nversions the lockfile pins. Nothing in the package is obfuscated.<\/p>\n\n<p>The PHP libraries in <code>app\/vendor<\/code> ship as readable source under their own\nlicences, each one named with its version and its licence file in\n    LICENSE-THIRD-PARTY.txt.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install through Plugins \u2192 Add New, or upload the folder to\n   \/wp-content\/plugins\/vx-framework.<\/li>\n<li>Activate the plugin through the Plugins screen.<\/li>\n<li>Open <strong>VX<\/strong> in the admin menu and create your first fieldset.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20the%20block%20editor%3F\"><h3>Does it work with the block editor?<\/h3><\/dt>\n<dd><p>Yes. Field values are available as dynamic data inside the block\neditor. You can bind them to blocks, loop them, and drive visibility\nfrom the same model.<\/p><\/dd>\n<dt id=\"can%20an%20ai%20assistant%20work%20with%20my%20model%3F\"><h3>Can an AI assistant work with my model?<\/h3><\/dt>\n<dd><p>Yes. VX registers its operations as WordPress abilities and can serve\nthem over MCP. The endpoint stays off until you enable it.<\/p><\/dd>\n<dt id=\"can%20i%20define%20the%20model%20in%20code%3F\"><h3>Can I define the model in code?<\/h3><\/dt>\n<dd><p>Yes. Register fieldsets, post types, and taxonomies in PHP or JSON\nin your theme or plugin. The dashboard stays usable for everything\nthat is not in code.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20bricks%20builder%3F\"><h3>Does it work with Bricks Builder?<\/h3><\/dt>\n<dd><p>Yes. When Bricks Builder is active, VX fields appear in its dynamic data\npicker.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: Type into an entry's fields straight from its template when you edit the entry with the template shown.<\/li>\n<li>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.<\/li>\n<li>Improved: Bound blocks, Query Loop cards and @site and @user tags show their values in the editor of every post type.<\/li>\n<li>Improved: Date and time pickers follow each user's profile language, including date order and 12- or 24-hour time.<\/li>\n<li>Improved: The post type Editor tab explains when the Block editor setting can't take effect.<\/li>\n<li>Fixed: Text, textarea, list and choice values keep % sequences such as %date%, and very long values save quickly.<\/li>\n<li>Fixed: Content written by AI assistants keeps the backslashes in block markup.<\/li>\n<li>Fixed: Opening the Dynamic tags dialog no longer marks the post or template as changed.<\/li>\n<li>Fixed: A cover bound to an image shows the image. @post(edit_url) previews as the edit link.<\/li>\n<li>Fixed: Reading a post's values lists a field that was never saved under <code>omitted<\/code>, and writing null clears a field.<\/li>\n<li>Changed: A post type's archives label defaults to its plural name.<\/li>\n<li>Developers: Rules added through <code>vxframework\/fieldsets\/validation_rules<\/code> are checked on save, as warnings. <code>on_user()<\/code> in PHP blueprints takes no roles; use a <code>user_role<\/code> condition.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>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.<\/li>\n<li>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.<\/li>\n<li>New: The <code>vx-framework\/move-fields<\/code> ability lets AI assistants move fields into, out of and between sections and tabs.<\/li>\n<li>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.<\/li>\n<li>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.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"The data modeling layer for agentic WordPress. Model your content once - use it in the block editor, any builder, headless, or with AI.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/368551","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=368551"}],"author":[{"embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vxframework"}],"wp:attachment":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=368551"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=368551"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=368551"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=368551"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=368551"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=368551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}