Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Body-level runtime scaffolds after the footer stay in post content and block native archive query loops

Aperta
#3,402 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

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
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
php, wordpress
Ambito
backend, web-dev

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 renders post-content would 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:none matters, 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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Automattic/blocks-engine

Tutte le issue di Automattic/blocks-engine

Issue simili

Altre issue su PHP

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.