diff --git a/src/Stache/Repositories/TermRepository.php b/src/Stache/Repositories/TermRepository.php index 40ab275700..0aa7d94978 100644 --- a/src/Stache/Repositories/TermRepository.php +++ b/src/Stache/Repositories/TermRepository.php @@ -5,6 +5,7 @@ use Statamic\Contracts\Taxonomies\Term; use Statamic\Contracts\Taxonomies\TermRepository as RepositoryContract; use Statamic\Facades\Collection; +use Statamic\Facades\Site; use Statamic\Facades\Taxonomy; use Statamic\Stache\Query\TermQueryBuilder; use Statamic\Stache\Stache; @@ -45,13 +46,16 @@ public function find($id): ?Term public function findByUri(string $uri, string $site = null): ?Term { $collection = Collection::all() - ->filter->url() ->first(function ($collection) use ($uri) { - return Str::startsWith($uri, $collection->url()); + if (Str::startsWith($uri, $collection->url())) { + return true; + } + + return Site::hasMultiple() ? false : Str::startsWith($uri, '/'.$collection->handle()); }); if ($collection) { - $uri = Str::after($uri, $collection->url()); + $uri = Str::after($uri, $collection->url() ?? $collection->handle()); } $uri = Str::removeLeft($uri, '/');