Body-level runtime scaffolds after the footer stay in post content and block native archive query loops
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 40/100
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- PHP
- スター
- 22
- フォーク
- 3
- 平均マージ
- 6時間 26分
- マージ済み PR(30日)
- 879
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Automattic/blocks-engine のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
Automattic/blocks-engine#775 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 50/100
Automattic/blocks-engine#4037 ·
メンテナーはふだん 1 日以内に返信
-
Apply captured dialog trigger-state rows and accept the updated DLA disclosure runtime対応中かも @chubes4 が今日担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
Automattic/blocks-engine#4031 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 65/100
Automattic/blocks-engine#4030 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 62/100
Automattic/blocks-engine#4028 ·
メンテナーはふだん 1 日以内に返信
Automattic/blocks-engine の issue をすべて見る
似ている issue
-
sync-en
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
JSON:API resource collections fail for resources that wrap a non-model object対応中かも @lazerg が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
Recognise PHP_CodeSniffer (`phpcs`) as a linter対応中かも @HarshRajSinghania が今日担当しました。 オープンenhancement good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
MustacheCase/zanadir#507 ·
メンテナーはふだん 1 日以内に返信
-
Developer Tooling/Infrastructure type: infrastructure
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
woocommerce/woocommerce#70544 ·
メンテナーはふだん 1 日以内に返信