diff --git a/CHANGELOG.md b/CHANGELOG.md index ce77b82..74fce44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,18 @@ All notable changes to wp-multi-city. Format follows [Keep a Changelog](https://keepachangelog.com/). +## [1.1.0] — 2026-05-19 + +### Changed +- **BREAKING (internal):** `Redirect::handle()` переписан на washanyanya-style. + Триггер: `template_redirect` @ priority 1 + `is_404()`. + Reverse slug lookup: `get_posts(name=$slug, post_type=page, status=[private,publish])`, + затем match в `page_unic[i].page_new`. 301 на `/{city}/{orig-canonical-path}/`. +- Удалена старая семантика (триггер по `$post->ID === page_new`). +- Hook переехал с `wp` priority 9998 на `template_redirect` priority 1. + +Closes [Gitea issue #1](https://git.netranking.ru/bryzgalov/wp-multi-city/issues/1). + ## [1.0.1] — 2026-05-17 ### Added diff --git a/readme.txt b/readme.txt index de3bb25..ff29b81 100644 --- a/readme.txt +++ b/readme.txt @@ -23,6 +23,10 @@ License: GPLv2 or later == Changelog == += 1.1.0 = +* Change: `Redirect::handle()` переписан на washanyanya-style. Триггерится на `is_404()` (хук `template_redirect` priority 1), ищет private/publish page по URL slug через `get_posts`, матчит с `page_unic`, делает 301 на канонический `/{city}/{orig-slug}/`. Старая семантика (триггер по `$post->ID === page_new`) удалена — она покрывала только редкий edge-кейс published clone with own URL. +* Change: Redirect handler hook переехал с `wp` priority 9998 на `template_redirect` priority 1 (стандарт WP для redirects). + = 1.0.1 = * Add: процедурный wrapper `wpmc_main_town_slug()` (был задокументирован в README, но отсутствовал в коде). * Fix: WP 6.7+ notice `_load_textdomain_just_in_time` — убраны `__()` обёртки из labels CPT/таксономии/ACF field group (плагин не поставляется с переводами).