diff --git a/src/Base/RestAPI/RestAPIServiceProvider.php b/src/Base/RestAPI/RestAPIServiceProvider.php index 4e10d25..9503086 100644 --- a/src/Base/RestAPI/RestAPIServiceProvider.php +++ b/src/Base/RestAPI/RestAPIServiceProvider.php @@ -83,7 +83,8 @@ public function registerRoutes(): void 'permission_callback' => '__return_true', ]); - register_rest_route($this->namespace, 'items/(?P[\w-]+)', [ + // Not [\w-]+: slugs with non-ASCII characters (e.g. "m²") are stored percent-encoded. + register_rest_route($this->namespace, 'items/(?P[^/]+)', [ 'methods' => WP_REST_Server::READABLE, 'callback' => [new ItemController($this->plugin), 'getItemBySlug'], 'permission_callback' => '__return_true', @@ -95,7 +96,7 @@ public function registerRoutes(): void 'permission_callback' => '__return_true', ]); - register_rest_route($this->namespace, 'themes/(?P[\w-]+)', [ + register_rest_route($this->namespace, 'themes/(?P[^/]+)', [ 'methods' => WP_REST_Server::READABLE, 'callback' => [new ThemeController($this->plugin), 'getThemeBySlug'], 'permission_callback' => '__return_true',