Skip to content

release: v13.34.0-beta - #362

Merged
ogorzalka merged 20 commits into
mainfrom
develop
Sep 29, 2026
Merged

ogorzalka merged 20 commits into
mainfrom
develop

Conversation

@ogorzalka

Copy link
Copy Markdown
Member

Merges develop into main for v13.34.0-beta (release branch: #361). Requires Laravel 13.34 (illuminate/* ^13.34). See the CHANGELOG section [v13.34.0-beta].

A theme's resources/views/patterns can now hold a plain .html file: it is
registered verbatim, with no compilation step, for a pattern that needs no
PHP — such as one exported straight from the block editor. Header parsing
is unchanged (WordPress's get_file_data(), extension-agnostic); only the
discovery extension filter and the content step branch on the extension.

Needed for a WordPress Full Site Editing (block) theme, whose patterns
carry no dynamic PHP most of the time. Verified end to end on a throwaway
block theme: the .html pattern registers, renders through a real block
template, and its {{ }}-looking text is not compiled.
feat: accept plain .html files as block patterns alongside .blade.php
WordPress core resolves a block theme's templates/404.html to a temporary
wp-includes/template-canvas.php, never a Blade view, so it always rendered
through FrontendController's raw-PHP-template branch — the one branch that
never checked is_404(). The status is now set the same way the Blade-view
branch already does it.

Measured building a Full Site Editing theme: the theme's 404.html rendered
its content correctly, but the response was HTTP 200. Classic themes
unaffected — checked apiary's 404 and home page both still answer as
before.
fix: a block theme's own 404 page answers HTTP 404
WordPressBodyClass stripped error404 and added path classes, but it only ran
on WordPress routes (Route::wp() and the {any} fallback), where WordPress's
verdict is right: a real 404 lost error404 and every hierarchy page got an
any-<path> class. Laravel routes, the ones it was meant for, never had the
middleware and kept error404, is_404() and a 'Page not found' title.

Replaced by a RouteMatched listener that leaves WordPress routes alone and,
on any other route, clears the 404 state and adds the URI segments as body
classes. The fallback route is now flagged isWordPressRoute().
… map

A Vite entry is an ES module, but it was enqueued as a classic script and
printed in the head, before WordPress's import map. Firefox and Safari then
ignore the map, so every WordPress module on the page failed on
@wordpress/interactivity. In a classic theme the map is always in the
footer, so any theme was exposed as soon as a navigation block was used.

On wp_enqueue_scripts and admin_enqueue_scripts, a Vite entry (and the dev
server's client) is now a script module: WordPress places it as it places
its own. Dependencies, localized data and inline script go on a classic
companion, {handle}-data. No version is appended: a module is identified by
its URL.
driftingly/rector-laravel (dev only, 2.6.2 is the latest) requires
symplify/rule-doc-generator-contracts, now marked abandoned on Packagist with
no replacement. composer audit fails on abandoned packages, so Code Quality
failed on every pull request. Only this package is ignored: any other
abandoned package, and every security advisory, still fail the job.
ci: let composer audit pass over the abandoned symplify contracts
fix: keep WordPress's verdict on its own routes, clear it on Laravel's
fix: enqueue Vite entries as script modules, after WordPress's import map
Reverts #354, never released. A theme's static patterns belong in
patterns/*.php at its root, which WordPress registers natively (and the
Site Editor exports): the .html format duplicated that in a format only
Pollora knew, and mixed static markup into resources/views, which is
otherwise Blade only. resources/views/patterns keeps .blade.php patterns,
for those that need Laravel.

This reverts commit 9cf62fc, reversing changes made to 81336d7.
revert: drop .html block patterns, before they ship
A third built-in template, next to default and ecommerce: a Full Site Editing
block theme. The prompt's labels move to TEMPLATE_LABELS, keyed like
TEMPLATES, and a test keeps the two in step. The missing-theme page and
admin notice list it too.
feat: offer Buzz as the magazine template of pollora:make:theme
The framework's version tracks Laravel's, now 13.34: illuminate/* ^13.34.
Gathers the [Unreleased] entries under the version.
@ogorzalka
ogorzalka merged commit 088ee7b into main Sep 29, 2026
31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant