fix(jsonld): accept string|array @type — v0.6.1
Yoast's wpseo_schema_webpage_type filter passes ['WebPage'] (array) on every singular page. The v0.6.0 retype_to_medical_webpage() signature was strict string, causing TypeError → HTTP 500 on ALL singulars under strict_types=1. Secondary bug: enrich_webpage_piece compared 'WebPage' === $piece['@type'] but @type is an array, so MedicalWebPage enrichment never injected. Fix: - retype_to_medical_webpage: string|array param + return (PHP 8.1+ union) - enrich_webpage_piece: normalise @type to array before in_array() check - Add tests/unit/test-jsonld-webpage.php: regression tests with array input for both code paths; fail against v0.6.0, pass after fix - Bump version header + PR_CORE_VERSION constant to 0.6.1 - CHANGELOG entry under [0.6.1] Agent-Session: jsonld-webpage-typefix v0.6.1
This commit is contained in:
@@ -3,6 +3,13 @@
|
||||
All notable changes to Peptide Repo Core are documented here.
|
||||
Format: [Semantic Versioning](https://semver.org/).
|
||||
|
||||
## [0.6.1] — 2026-06-13
|
||||
|
||||
### Fixed
|
||||
- Fix: Yoast `wpseo_schema_webpage_type` passes `string|array` on singulars — accept `string|array` in `retype_to_medical_webpage()` signature; return type updated to match (PHP 8.1+ union). Eliminates `TypeError` → HTTP 500 on all singular pages (monographs + plain Pages) under `strict_types=1`.
|
||||
- Fix: `enrich_webpage_piece` compared `'WebPage' === $piece['@type']` but Yoast sets `@type` as an array on singular pages. Normalise `@type` to array before `in_array()` check; `lastReviewed`, `reviewedBy`, and `audience` now inject correctly.
|
||||
- Add regression test `tests/unit/test-jsonld-webpage.php`: exercises `retype_to_medical_webpage()` with array input for peptide and non-peptide contexts (no TypeError), and `enrich_webpage_piece` with `@type` as array (enrichment injects). Tests fail against v0.6.0, pass after fix.
|
||||
|
||||
## [0.6.0] — 2026-06-13
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user