背景
mediba <mdf:deleted/> のような削除通知を出すには、trashed 投稿をフィードに含める必要がある。aggregator 側はフィードに deleted 通知が出ているのを見て自分のキャッシュを破棄する。
現状 Query\ArgsBuilder::ALLOWED_POST_STATUS は publish / private / future のみで、trash を選んでも自動的に publish に丸められる。
期待
A) trash を post status の選択肢に追加
ALLOWED_POST_STATUS に trash を追加
item-query ブロックの Inspector の post status チェックボックスに trash を表示
feedwright/when (別 issue)と組み合わせて、author が <mdf:deleted/> 等を条件出力できるようにする
B) 「trash になってから N 日以内」フィルタ
削除通知をいつまでも残し続けると aggregator 側のフィードが膨張する。spec によっては「削除後 7 日まで配信」のような時間窓が暗黙の前提。これを設定できるようにする:
item-query ブロックに新属性 trashWithinDays: number(default 0 = 無制限、> 0 で日数指定)
ArgsBuilder::build() で trashWithinDays > 0 && postStatus に trash 含む の場合に date_query を追加(post_modified ベースで「直近 N 日以内に変更されたもの」)
- 厳密には trash になった瞬間ではなく「直近変更」だが、wp が trash 操作を post_modified で記録するため近似的にこれで足りる
- より厳密にやる場合は
_wp_trash_meta_time post meta で絞るが、後ろ向き互換性のため複雑化を避けて初版は post_modified ベースで OK
受け入れ基準
影響範囲
src/Query/ArgsBuilder.php:ALLOWED_POST_STATUS 追加、build() に trashWithinDays 処理
blocks/item-query/block.json:trashWithinDays 属性追加
blocks/item-query/edit.js:post status チェックボックス + 日数入力
- テスト:
tests/Unit/ArgsBuilderTest.php、tests/Integration/RenderTest.php
- 仕様書:
docs/requirements.md
- 翻訳:
languages/
関連
feedwright/when ブロック追加 issue と組み合わせて、削除通知の配信フローが完成する
背景
mediba
<mdf:deleted/>のような削除通知を出すには、trashed 投稿をフィードに含める必要がある。aggregator 側はフィードに deleted 通知が出ているのを見て自分のキャッシュを破棄する。現状
Query\ArgsBuilder::ALLOWED_POST_STATUSはpublish / private / futureのみで、trashを選んでも自動的にpublishに丸められる。期待
A) trash を post status の選択肢に追加
ALLOWED_POST_STATUSにtrashを追加item-queryブロックの Inspector の post status チェックボックスにtrashを表示feedwright/when(別 issue)と組み合わせて、author が<mdf:deleted/>等を条件出力できるようにするB) 「trash になってから N 日以内」フィルタ
削除通知をいつまでも残し続けると aggregator 側のフィードが膨張する。spec によっては「削除後 7 日まで配信」のような時間窓が暗黙の前提。これを設定できるようにする:
item-queryブロックに新属性trashWithinDays: number(default 0 = 無制限、> 0で日数指定)ArgsBuilder::build()でtrashWithinDays > 0 && postStatus に trash 含むの場合にdate_queryを追加(post_modifiedベースで「直近 N 日以内に変更されたもの」)_wp_trash_meta_timepost meta で絞るが、後ろ向き互換性のため複雑化を避けて初版は post_modified ベースで OK受け入れ基準
ArgsBuilder::ALLOWED_POST_STATUSにtrashが含まれるpostStatus: ['publish', 'trash']を渡すと両方のステータスが結果に含まれるtrashWithinDays: 7を指定すると、7 日以上前に変更された投稿は除外されるtrashWithinDaysが 0 / 未指定 / 数値以外なら無制限trashチェックボックスと「Include trashed posts modified within N days」入力欄が表示されるArgsBuilderテストに trash 許可と date_query 生成のケースを追加docs/requirements.md§12.5 (feedwright/item-query) に新属性 / 新挙動を追記composer phpcs) パス影響範囲
src/Query/ArgsBuilder.php:ALLOWED_POST_STATUS 追加、build() に trashWithinDays 処理blocks/item-query/block.json:trashWithinDays属性追加blocks/item-query/edit.js:post status チェックボックス + 日数入力tests/Unit/ArgsBuilderTest.php、tests/Integration/RenderTest.phpdocs/requirements.mdlanguages/関連
feedwright/whenブロック追加 issue と組み合わせて、削除通知の配信フローが完成する