Define custom post types & fields in the Block Editor.
WordPress.com’s experimental Create Content Model plugin transforms the way custom post types and custom fields are created and managed in WordPress by making use of the latest core features to bring content modeling into the Block Editor. Additionally, the created data model and data entry UI can be exported as a standalone, maintenance-free plugin.
You can also test out the plugin locally with Studio! Check out the Get Started guide for details.
https://github.com/user-attachments/assets/723a973a-eb92-4b71-9f64-ac269d0f9861
For a more thorough introduction, check out Brian Coord's Custom fields and post types inside the block editor livestream.
Find detailed instructions on creating your content model using this plugin in the Get Started guide.
Our team at WordPress.com is excited to share our recent prototyping efforts on game changing approaches to custom content creation.
The Create Content Model plugin builds upon our custom post types project at the CloudFest Hackathon in 2024. We’ve leveraged core functionality, like block bindings and block variations, to create a new paradigm for creating and managing custom post types and custom fields in WordPress.
Unlike existing custom post type and custom field plugins, our plugin takes a native approach by putting the creation and management of these elements directly in the WordPress Block Editor. Using the Block Bindings API, post_meta
fields are bound to block attributes. Block variations are created from each bound block for use in front-end template layouts. The result is an extremely intuitive workflow for both the setup of custom post types and fields and their usage in front-end templating.
A key feature of the Create Content Model plugin is the export of a locked custom data model and a data entry UI. Developers can generate and reuse the same content models on multiple sites without ongoing plugin maintenance or costs. They can hand off fully functional sites with locked custom post types and fields, ready for clients to populate the content.
npm install
to install the dependenciesnpm run dev-server
to start the local WordPress servernpm start
to start the JavaScript bundler watcherRun npm run plugin-zip
to create a zip file of the plugin. This will automatically bundle the JavaScript files.
Create a new release by filling the form on this page.
The release title and tag ("Choose a tag" selectbox, above the title) should be in the Semver format (major.minor.patch
).
The release description should be a list of bullet points of the most meaningful changes. You can copy the commit title from the merged PRs.
After clicking "Publish release," a GitHub workflow will bundle the plugin and export the release artifact.
Want to help us move this concept forward?
Feel free to open an issue in the repo to discuss your proposed improvement. Pull requests are welcome for bug fixes and enhancements.
We built this as a prototype and may invest into it further based on level of interest. Our near term vision is outlined in this roadmap issue.
We’d like to thank the team at WordPress.com who made this project possible: Luis Felipe Zaguini, Candy Tsai, Autumn Fjeld, Brian Coords, Daniel Bachhuber.
Follow us:
And while you’re at it, check out our WordPress hosting solution for developers and our agency program.