=== AMP WP - Google AMP For WordPress - Full Changelog === This file is the complete version history for AMP WP. The "Changelog" section in readme.txt lists only the most recent releases (to stay within the WordPress.org 5,000-word readme limit); every release ever shipped is recorded here in full detail. Entry convention (applied to new releases going forward): bullets are grouped under category headers in this order - Features, Security, Fixed, Improvements, WordPress Compatibility (Compat), Refactored. == Changelog == = 1.8.3 - 2026-06-15 = * Fix: JSON-LD structured data now uses canonical (non-AMP) URLs for mainEntityOfPage, NewsArticle url, and author url instead of the AMP endpoint URLs that Google Search Console flagged as mismatched. * Fix: JSON-LD description no longer concatenates words when HTML tags are stripped (e.g. "thatpeople" is now "that people"). * Fix: Author object in JSON-LD now includes the `url` property pointing to the author archive page, satisfying Google's structured data recommendation. * Fix: SearchAction urlTemplate in WebSite and WebPage schemas now uses the correct `home_url('/?s={search_term_string}')` format instead of the malformed double-path `get_search_link() . '?s=...'`. * Fix: Sanitizer now preserves amp-bind bracket attributes ([src], [hidden], [class], [text], etc.) on elements with tag rules, preventing them from being stripped during STEP 8 attribute filtering. * Fix: Added `amp-state` to the allowed protocol list for amp-list `src`, so `src="amp-state:..."` no longer triggers element removal. * Fix: Added `hidden` to the general attributes whitelist so the HTML5 `hidden` attribute is preserved on all elements during sanitization. * Fix: Social share links multi-select in Layout settings was double-escaping the `selected` attribute via `esc_attr()`, potentially preventing saved selections from being restored. Same bug fixed in General settings post types and taxonomies multi-selects. * Fix: `submit_button()` text argument was wrapped in `esc_html__()` across all settings tabs, causing double-escaping since `submit_button()` escapes internally. Replaced with `__()`. * Fix: 11 missing translation defaults for comment-related keys in `amp_wp_translation_stds()`, causing empty strings on the front-end when the Translation settings page was never saved. * Fix: Translation settings page was missing the sidebar header field and the WooCommerce translation section. * Fix: Customizer class `_x()` call had the textdomain in the context parameter slot. * Fix: Textarea fields for exclude URLs and GDPR consent message used `wp_kses_post()` instead of `esc_textarea()` inside `