Repository navigation
Conversation
…ate. Following the approach in Gutenberg PR #85402, `index.html` becomes the theme's shell — the header part, the common `main` wrapper holding a `core/post-content` slot, and the footer part — while the seven other templates carry only what is particular to them. Each one names the template it is rendered inside in the new `templates` section of `theme.json`. Five of the seven compose to a block-for-block identical tree, so they render as they did before. The `404` and `page-no-title` templates adopt the shared `main` wrapper, so they lose their own padding and their zero top margin respectively. This relies on the `templates` section of `theme.json` and the template substitution added by Gutenberg PR #85402, neither of which core has yet. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. Core Committers: Use this line as a base for the props when committing in SVN: To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. Props Bot commandsYou can trigger Props Bot actions by commenting on this PR:
|
Test using WordPress PlaygroundThe changes in this pull request can previewed and tested using a WordPress Playground instance. WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser. Some things to be aware of
For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation. |
…lock of index. The templates inside templates experiment in Gutenberg moved the slot a template is rendered in from the Content block to a block of its own, `core/template-slot`, whose inner blocks are what the template shows when it is rendered on its own. Index holds the blog heading and query loop it had before in its slot, so it renders as it did for its own requests, and every other template takes their place. The slot is full width with a constrained layout, as the content block of the single template is, so the full width groups of the templates rendered in it still span the page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019rCnBrK7NJAD3YXwHRSLgi
…ne names A template can name another template to be rendered inside, and the front end renders a post inside its template and that template inside the one it names, but the canvas showed a post inside its own template alone: a theme that keeps its header and its footer in one template, such as the Twenty Twenty-Five of WordPress/wordpress-develop#14795, showed every post and page without them. When the template of the post names a template, the canvas renders that one at its root, the post's template in its slot through `templateSlotId`, and the post in the content block of its template, which reads the post from the context as it did. The editor waits for that template before rendering, as it waits for the post's template, so the canvas does not render twice. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019rCnBt2q8NL4WPNzTrjuVR
Remove the blog heading and query loop patterns from the core/template-slot block, so index.html is only the shell. home.html keeps the blog listing. Remove the blog heading and query loop patterns from the core/template-slot block, so index.html is only the shell. home.html keeps the blog listing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019rCnBqBF4VuSXgWLoKcCQY Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019rCnBqBF4VuSXgWLoKcCQY
Trac Ticket MissingThis pull request is missing a link to a Trac ticket. For a contribution to be considered, there must be a corresponding ticket in Trac. To attach a pull request to a Trac ticket, please include the ticket's full URL in your pull request description. More information about contributing to WordPress on GitHub can be found in the Core Handbook. |
This demonstrates how Gutenberg PR #85402, can help us to implement simpler themes.
index.htmlbecomes the theme's shell — the header part, the sharedmainwrapper holding acore/template-slotblock, and the footer parttemplatessection oftheme.json, so the header and the footer live in one template instead of being repeated in eight.404andpage-no-titleadopt the sharedmainwrapper, so they lose their own padding and their zero top margin respectively.This relies on the
templatessection oftheme.jsonand thetemplate_includesubstitution added by that Gutenberg PR, neither of which core has, so on plain trunk the theme renders with no header and no footer.Trac ticket: none. This is a companion to Gutenberg PR #85402, opened for review alongside it, and is not proposed for core as it stands.
Use of AI Tools
AI assistance: Yes
Tool(s): Claude Code
Model(s): Claude Opus 5
Used for: The template and
theme.jsonchanges, and a throwaway harness that verified the composed block trees against trunk. Directed and reviewed by me.This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.