site
The current site being targeted in the request.
It's a Statamic\Sites\Site object and can be used as a single tag or tag pair.
// config/statamic/sites.php
'sites' => [
'default' => [
'name' => 'My Statamic Site',
'locale' => 'en_US',
'url' => '/',
'direction' => 'ltr',
'attributes' => [
'foo' => 'bar',
],
]
]
As a single tag, it will output the handle of the site:
{{ site }}
{{ $site }}
default
As a tag pair, you can access additional information:
{{ site }}
{{ handle }}
{{ name }}
{{ locale }}
{{ short_locale }}
{{ url }}
{{ permalink }}
{{ direction }}
{{ attributes }}
{{ foo }}
{{ /attributes }}
{{ /site }}
{{ $site->handle }}
{{ $site->name }}
{{ $site->locale }}
{{ $site->short_locale }}
{{ $site->url }}
{{ $site->permalink }}
{{ $site->direction }}
{{ $site->attributes['foo'] }}
default
My Statamic Site
en_US
en
/
http://mysite.com/
ltr
bar
You can also access those variables directly as single tags:
{{ site:name }}
{{ site:attributes:foo }}
{{ $site->name }}
{{ $site->attributes['foo'] }}
My Statamic Site
bar
The attribute() Helper#
When using Blade, accessing an attribute that doesn't exist via $site->attributes['key'] will throw an "Undefined array key" exception. The attribute() method handles missing keys gracefully, supports dot notation for nested values, and lets you provide a fallback.
{{ $site->attribute('company_name') }}
{{-- Dot notation for nested attributes --}}
{{ $site->attribute('social.twitter') }}
{{-- Fallback value when the attribute is missing --}}
{{ $site->attribute('theme', 'standard') }}
Hot Tip!
In Antlers, missing keys are already null-safe, so {{site:attributes:company_name}} would work without the helper.