Özellikler:
- PHP'den SEO etiketleri ayarlama
- Blade'den SEO etiketlerini ayarlama
- Otomatik olarak kapak resimleri oluşturmak için Flipp ile entegrasyon
- Özel uzantı desteği
- Etkileyici ve basit API
- Özelleştirilebilir görünümler
Örnek Kullanım:
seo()
->title($post->title)
->description($post->excerpt)
->twitter()
->flipp('blog')
composer require bayrameker/laravelseo
Blade dosyanızın <head>
etiketine aşağıdaki satırı ekleyin:
<x-seo::meta />
Paket herhangi bir PHP kodundan veya özellikle @seo
yönergesi kullanılarak Blade'den kullanılabilir.
Aşağıdaki yöntemleri çağırabileceğiniz SeoManager örneğini almak için seo()
yardımcısını kullanın:
Mevcut yöntemler:
site(string $site)
url(string $url)
title(string $title)
description(string $description)
image(string $url)
twitterCreator(string $username)
twitterSite(string $username)
twitterTitle(string $title)
twitterDescription(string $description)
twitterImage(string $url)
Örnek Kullanım:
seo()->title('foo')->description('bar')
Yöntemleri Blade'den çağırmak için @seo
yönergesini kullanabilirsiniz:
@seo('title') // title değerini kullan
@seo('title', 'foo') // title değer tanımla ve kullan
@seo(['title' => 'foo']) // Başlığı önceden tanımla
seo()->twitter();
seo()->twitterTitle('About us')
Varsayılan olarak, hiçbir favicon bağlantısı eklenmez. Kendiniz şu şekilde kullanmalısınız :
seo()->favicon();
favicon oluşturma kodu :
php artisan seo:generate-favicons public/path-to/logo.png
Artisan konsolundan herhangi bir yol argümanı verilmezse, 'public/assets/logo.png' konumuna geri döneriz.
32x32 piksellik bir "public/favicon.ico" & "public/favicon.png" simgesi oluşturacağız. Çoğu durumda bu yeterli olacaktır.
Lütfen imagick php uzantısını ve intervention/image yüklemeniz gerektiğini unutmayın.
Varsayılan değerleri yapılandırmak için, yöntemleri "default" bağımsız değişkenle çağırın:
seo()
->title(default: 'Bayram Eker — Kişisel Website')
->description(default: 'Biz yazılım geliştiricisiyiz ...');
Daha fazla etiket eklemek için "tag()" ve "rawTag()" yöntemlerini kullanabilirsiniz:
seo()->tag('fb:image', asset('foo'));
seo()->rawTag('<meta property="fb:url" content="bar" />');
seo()->rawTag('fb_url', '<meta property="fb:url" content="bar" />');
"og:url" ve kurallı URL "bağlantı" etiketlerini etkinleştirmek için şunu arayın:
seo()->withUrl();
Bu, paketin request()->url()
(sorgu dizesi olmadan geçerli URL) öğesinden okunmasını sağlar.
URL'yi değiştirmek isterseniz, seo()->url()
kullanın:
seo()->url(route('products.show', $this->product));
Şablona eklenmeden önce belirli değerleri değiştirmek isteyebilirsiniz. Örneğin, <title>
meta sonuna | ile ek başlık eklemek isteyebilirsiniz.
Bunu yapmak için, aşağıdaki gibi yöntem çağrılarına 'modify' argümanını eklemeniz yeterlidir:
seo()->title(modify: fn (string $title) => $title . ' | Bayram Eker');
You can, of course, combine these with the defaults:
seo()->title(
default: 'BayramEker — Web Geliştirici',
modify: fn (string $title) => $title . ' | Laravel Developer'
);
İlk olarak, Flipp API anahtarlarınızı eklemeniz gerekir:
-
API anahtarınızı "FLIPP_KEY" ortam değişkenine ekleyin. Anahtarı [buradan]->(https://useflipp.com/settings/profile/api) alabilirsiniz..
-
config/services.php
gidin ve bunu ekleyin:'flipp' => [ 'key' => env('FLIPP_KEY'), ],
Şablonları AppServiceProvider
içerisine ekleyin:
seo()->flipp('blog', 'v8ywdwho3bso');
seo()->flipp('page', 'egssigeabtm7');
Bundan sonra, aşağıdaki gibi seo()->flipp()
çağırarak şablonları kullanabilirsiniz:
seo()->flipp('blog', ['title' => 'Foo', 'content' => 'bar'])`
Hiçbir veri sağlanmazsa, yöntem mevcut SEO yapılandırmasındaki "başlık" ve "açıklama"yı kullanır:
seo()->title($post->title);
seo()->description($post->excerpt);
seo()->flipp('blog');
'flipp()' yöntemi ayrıca, blog kapak resimleri gibi başka yerlerde kullanmanıza izin veren, resme endeksli bir URL döndürür.
<img alt="@seo('title')" src="@seo('flipp', 'blog')">
Services Provider boot()
yöntemindeki varsayılan yapılandırma:
seo()
->site('Bayram Eker — Laravel Developer')
->title(
default: 'BayramEker — Biz yazılım geliştiricisiyiz',
modify: fn (string $title) => $title . ' | Laravel Developer'
)
->description(default: 'yazılım geliştiricisiyiz ...')
->image(default: fn () => asset('header.png'))
->flipp('blog', 'o1vhcg5npgfu')
->twitterSite('archtechx');
Controller SEO meta verilerini yapılandırma örneği.
public function show(Post $post)
{
seo()
->title($post->title)
->description(Str::limit($post->content, 50))
->flipp('blog', ['title' => $page->title, 'content' => $page->excerpt]);
return view('blog.show', compact($post));
}
Bu örnek, View'e iletilen değerleri kullanarak genel SEO yapılandırmasını ayarlayan bir Blade View kullanır.
@seo(['title' => $page->name])
@seo(['description' => $page->excerpt])
@seo(['flipp' => 'content'])
<h1>{{ $page->title }}</h1>
<p>{{ $page->excerpt }}</p>
<p class="prose">
{{ $page->body }}
</p>
Bu paket tamamen açıktır ve görünümleri değiştirilerek (mevcut şablonları değiştirmek için) veya bir uzantı geliştirerek (daha fazla şablon eklemek için) özelleştirilebilir.
php artisan satıcısı:yayın --tag=seo-views
komutunu çalıştırarak Blade View'lerini yayınlayabilirsiniz.
Özel bir uzantı kullanmak için, istenen meta etiketlerle bir Blade component oluşturun. Component, {{ seo()->get('foo') }}
veya @seo('foo')
kullanarak verileri okumalıdır.
Örneğin:
<meta name="facebook-title" content="@seo('facebook.foo')">
View oluşturulduktan sonra uzantıyı kaydedin:
seo()->extension('facebook', view: 'my-component');
// <x-my-component>
Bir uzantı için veri ayarlamak için (bizim durumumuzda facebook
), çağrıları camelCase'de uzantı adıyla önekleyin veya ->set()
yöntemini kullanın:
seo()->facebookFoo('bar');
seo()->facebookTitle('Hakkımızda');
seo()->set('facebook.description', 'Biz bir web geliştirme ...');
seo(['facebook.description' => 'Biz bir web geliştirme ...']);
Bir uzantıyı devre dışı bırakmak için, "extension()" çağrısındaki ikinci argümanı false olarak ayarlayın:
seo()->uzantı('facebook', false);
Tüm kontrolleri yerel olarak çalıştırın:
./check
Kod stili, php-cs-fixer tarafından otomatik olarak düzeltilecektir.