1
0
Fork 0
mirror of https://github.com/archtechx/laravel-seo.git synced 2025-12-12 01:44:03 +00:00

Add type()

This commit is contained in:
Samuel Štancl 2022-03-30 00:50:40 +02:00
parent 1450ce17a7
commit 94be0f7e06
3 changed files with 11 additions and 7 deletions

View file

@ -12,10 +12,11 @@
<meta name="description" content="@seo('description')" />
@endif
@unless(seo()->hasTag('og:type'))
{{-- If an og:type tag is provided directly, it's included in the @foreach below --}}
@if(seo('type'))
<meta property="og:type" content="@seo('type')" />
@else
<meta property="og:type" content="website" />
@endunless
@endif
@if(seo('site')) <meta property="og:site_name" content="@seo('site')"> @endif

View file

@ -13,6 +13,7 @@ use Illuminate\Support\Str;
* @method $this url(string $url = null, ...$args) Set the canonical URL.
* @method $this site(string $site = null, ...$args) Set the site name.
* @method $this image(string $url = null, ...$args) Set the cover image.
* @method $this type(string $type = null, ...$args) Set the page type.
* @method $this twitter(enabled $bool = true, ...$args) Enable the Twitter extension.
* @method $this twitterSite(string $username = null, ...$args) Set the Twitter author.
* @method $this twitterTitle(string $title = null, ...$args) Set the Twitter title.
@ -53,7 +54,7 @@ class SEOManager
protected function getKeys(): array
{
return collect([
'site', 'title', 'image', 'description', 'url',
'site', 'title', 'image', 'description', 'url', 'type',
'twitter.site', 'twitter.title', 'twitter.image', 'twitter.description',
])
->merge(array_keys($this->defaults))

View file

@ -137,10 +137,12 @@ test('og:title can be overridden using a tag', function () {
->toContain('<meta property="og:title" content="bar" />');
});
test('og:type can be overridden using a tag', function () {
test('type can be overridden using the type method', function () {
expect(meta())->toContain('<meta property="og:type" content="website" />'); // default
seo()->tag('og:type', 'foo');
seo()->type('foo');
expect(meta())->toContain('<meta property="og:type" content="foo" />'); // overridden
expect(meta())
->toContain('<meta property="og:type" content="foo" />') // overridden
->not()->toContain('website');
});