Body-level runtime scaffolds after the footer stay in post content and block native archive query loops
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 40/100
Direzione di ricerca
Start with ShellExtraction, the template-part shell path, and the code that decides post content; inspect existing shell-extraction, listing, query-loop, and runtime-island tests. Add a generic case for a hidden body-level scaffold after the footer part, verifying it is omitted from post content, rendered once on the page, and allows the archive to materialize as a query loop.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
On the real adamadam.blog capture (90 files including website/parts/, compiled with #3401), every category and author archive is proven. Only 4 of the 13 categories materialize, though. The other 8 categories and both authors are declined with wordpress_site_plan_{taxonomy,author}_archive_query_unproven, and their archive pages stay frozen.
Every one of these is declined by the same gate in WordPressSitePlan::materializeListingQueryLoops(): $postChromeSettled && … && $this->postsRepeatListingChrome($sourceListingMarkup, $posts). The repeated "chrome" is the same block in each case, in each declining archive's member posts:
<!-- wp:group {"anchor":"jp-carousel-loading-overlay", …} --><div id="jp-carousel-loading-overlay" …><!-- wp:custom/layout-shell …
Source evidence
- The source is
<div id="jp-carousel-loading-overlay" style="display: none;">…spinner svg…</div>. - It is a direct child of
<body>, after the footer template part, and sits outside the main content. - It is a script-owned scaffold: Jetpack Carousel shows it while it opens a lightbox.
- It appears on 43 of 85 pages (the ones that enqueue the carousel) and in no shared part (
website/parts/header-*,footer-*). - Compiled, it stays inside each post's
canonical_block_markup, so the post owns it as content. A query loop that renderspost-contentwould repeat it once per card. The guard is correct to refuse; the problem is the block's placement.
Expected
Document-level body chrome that sits outside a document's content region must not be persisted as post_content. This covers runtime scaffolds such as this hidden overlay that appear as <body> children after the footer part.
Find the owning layer where the compiled document's content is separated from its shell (ShellExtraction / the template-part shell path, or where post content is decided). Then move or settle such body-level trailing nodes there, so they render once per page (in the template, or as page-level runtime markup) rather than inside the post.
- Generic only: no
jp-, Jetpack or id special case. - Decide whether
display:nonematters, or whether position (body child outside the content region, after the footer part) is the right signal. Justify it from what other tests already protect.
Acceptance
- A unit or contract test that fails on trunk: a post and a category archive both end with a hidden body-level scaffold after the footer part. After the fix, the post's content omits it, the scaffold still renders once on the page, and the archive materializes as a query loop.
- On the real capture, the archives formerly declined by this gate materialize as native query loops.
- Existing listing, query-loop, shell-extraction and runtime-island tests pass.
AI disclosure: diagnosed by Claude (Anthropic) running in the Pi coding agent by instrumenting the real compile; reviewed by @chubes4.
- Lingua principale
- PHP
- Stelle
- 22
- Fork
- 2
- Merge medio
- 7h 50m
- PR unite (30g)
- 686
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Automattic/blocks-engine
-
Solved site promotion gate fails on runner PHP patch drift (expects 8.2.33, runner installs 8.2.34)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Automattic/blocks-engine#2161 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Automattic/blocks-engine#2061 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Automattic/blocks-engine#1701 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Automattic/blocks-engine#775 ·
I maintainer di solito rispondono entro 1 giorno
-
Product-card JS controls stay raw HTML after the product grid resolves through the shop providerAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
Automattic/blocks-engine#3389 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Automattic/blocks-engine
Issue simili
-
frontend good first issue healthcare-review
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
AfyaLinkAfrica/afyalink-web#25 ·
I maintainer di solito rispondono entro 1 giorno
-
priority:medium type:chore
Difficoltà 1/5 1-3 ore Idoneità per principianti 84/100
crazy-goat/php-fpm-ng#1041 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
backdrop-contrib/paragraphs#299 ·
-
bug elixir P2 php test-only
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno