Handling _embed for custom REST API endpoints
The slash at the end is the culprit. While real requests with a / at the end of the route get wp_unslash()ed before resolving, the links for embeds do not. So, public function prepare_link_url ( $parts = array() ) { array_unshift( $parts, self::NSPACE ); return rest_url( implode( “https://wordpress.stackexchange.com/”, $parts ) ); } does the trick.