Open Graph Metadata
The general metadata builder provides various methods to add common metadata information to your site, such as keywords, titles, and descriptions.
To access the general metadata builder using the Metadata facade, we can call the openGraph method:
1<?php
2
3use Stillat\StatamicSiteEssentials\Support\Facades\Metadata;
4
5Metadata::openGraph();
#Title
The title method queues a <meta property="og:title" content="..."> tag. By default it binds to the $title variable.
1<?php
2
3use Stillat\StatamicSiteEssentials\Support\Facades\Metadata;
4
5// Adjusting the returned variable.
6Metadata::resolve('title', function (array $context) {
7 return 'An even better title!';
8});
9
10// Changing which variable is used.
11Metadata::openGraph()->title('$seo_title');
#Type
The type method queues a <meta property="og:type" content="..."> tag. By default it sets the type to website.
1<?php
2
3use Stillat\StatamicSiteEssentials\Support\Facades\Metadata;
4
5Metadata::openGraph()->type();
6Metadata::openGraph()->type('video.movie');
#URL
The url method queues a <meta property="og:url" content="..."> tag. By default it binds to the $current_full_url variable.
1<?php
2
3use Stillat\StatamicSiteEssentials\Support\Facades\Metadata;
4
5// Adjusting the returned variable.
6Metadata::resolve('current_full_url', function (array $context) {
7 return 'the-url-to-use';
8});
9
10// Changing which variable is used.
11Metadata::openGraph()->url('$a_custom_variable_name');
#Description
The description method queues a <meta property="og:description" content="..."> tag. By default it binds to the $meta_description variable.
1<?php
2
3use Stillat\StatamicSiteEssentials\Support\Facades\Metadata;
4
5// Adjusting the returned variable.
6Metadata::resolve('meta_description', function (array $context) {
7 return 'The custom description.';
8});
9
10// Changing which variable is used.
11Metadata::openGraph()->description('$description_field_name');
#Site Name
The siteName method queues a <meta name="site_name" property="og:site_name" content="..."> tag. By default it binds to the $meta_site_name variable.
1<?php
2
3use Stillat\StatamicSiteEssentials\Support\Facades\Metadata;
4
5// Adjusting the returned variable.
6Metadata::resolve('meta_site_name', function (array $context) {
7 return 'Stillat';
8});
9
10// Changing which variable is used.
11Metadata::openGraph()->siteName('$the_site_name');
#Locale
The locale method queues a <meta property="og:locale" content="..."> tag. By default it will use the locale of the current site. This behavior can be modified by supplying a custom variable name or callback function.
1<?php
2
3use Stillat\StatamicSiteEssentials\Support\Facades\Metadata;
4
5Metadata::openGraph()->locale('$the_locale_name');
6Metadata::openGraph()->locale(function(array $context) {
7 return 'The locale';
8});
#Locale Alternate
The localeAlternate method queues multiple <meta property="og:locale:alternate" content=".."> tags. By default it will use the of the current entry. The logic for this is similar to the following example:
1<?php
2
3use Stillat\StatamicSiteEssentials\Support\Facades\Metadata;
4use Stillat\StatamicSiteEssentials\Metadata\DataHelpers;
5use Stillat\StatamicAttributeRenderer\RepeatableValue;
6use Stillat\StatamicSiteEssentials\Data\Entries\EntryLocales;
7
8Metadata::openGraph()->localeAlternate(function (array $context) {
9 $entry = DataHelpers::getEntryFromContext($context);
10
11 if (! $entry) {
12 return new RepeatableValue([]);
13 }
14
15 /** @var EntryLocales $entryLocales */
16 $entryLocales = app(EntryLocales::class);
17 $locales = $entryLocales->getLocalesForEntry($entry);
18
19 return new RepeatableValue($locales);
20});
#Image Asset
The imageAsset helper method accepts an Asset instance and generates the following meta tags based on the asset's information:
1<meta name="image" property="og:image" content="...">
2<meta property="og:image:width" content="...">
3<meta property="og:image:height" content="...">
4<meta property="og:image:type" content="...">
5<meta property="og:image:alt" content="...">
#Image
The image helper method queues a <meta name="image" property="og:image" content="..."> tag. By default it does not contain a value, and is generally used to construct a large amount of meta tags at once.
#Image Type
The imageType method queues a <meta property="og:image:type" content="..."> tag. By default it does not contain a value, and is generally used to construct a large amount of meta tags at once.
#Image Width
The imageWidth method queues a <meta property="og:image:width" content="..."> tag. By default it does not contain a value, and is generally used to construct a large amount of meta tags at once.
#Image Height
The imageHeight method queues a <meta property="og:image:height" content="..."> tag. By default it does not contain a value, and is generally used to construct a large amount of meta tags at once.
#Image Alt
The imageAlt method queues a <meta property="og:image:alt" content="..."> tag. By default it does not contain a value, and is generally used to construct a large amount of meta tags at once.
#Video Asset
The videoAsset method method accepts an Asset instance and generates the following meta tags based on the asset's information:
1<meta name="video" property="og:video" content="...">
2<meta property="og:video:type" content="...">
3<meta property="og:video:width" content="...">
4<meta property="og:video:height" content="...">
#Video
The video helper method queues a <meta name="video" property="og:video" content="..."> tag. By default it does not contain a value, and is generally used to construct a large amount of meta tags at once.
#Video Type
The videoType method queues a <meta property="og:video:type" content="..."> tag. By default it does not contain a value, and is generally used to construct a large amount of meta tags at once.
#Video Width
The videoWidth method queues a <meta property="og:video:width" content="..."> tag. By default it does not contain a value, and is generally used to construct a large amount of meta tags at once.
#Video Height
The videoHeight method queues a <meta property="og:video:height" content="..."> tag. By default it does not contain a value, and is generally used to construct a large amount of meta tags at once.