fomvasss / laravel-seo
Laravel SEO 包
1.7.0
2024-03-20 16:03 UTC
Requires
- php: ^8.0
- illuminate/contracts: ^9|^10|^11
README
使用此包,您可以从 Laravel 应用中管理元标签和 SEO 字段。
安装
您可以通过 composer 安装此包
composer require fomvasss/laravel-seo
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --provider="Fomvasss\Seo\SeoServiceProvider"
php artisan migrate
用法
Eloquent 模型必须具有 HasSeo 特性
namespace App\Models; use Fomvasss\Seo\Models\HasSeo; class PostModel extends Model { use HasSeo; //... public function registerSeoDefaultTags(): array { return [ 'title' => $this->name, 'description' => $this->description, 'og_image' => $this->getFirstMediaUrl('images', 'thumb'), ]; } }
您还可以在模型中通过 registerSeoDefaultTags 方法定义默认标签
允许的后续方法(按优先级递增)
Seo::setDefault(['title' => 'Blog']); Seo::setModel($post); Seo::setPath('page/faq'); Seo::setTags(['keywords' => 'Laravel, SEO, tags']);
在 Blade 中渲染标签(在 HTML 头部)
{!! \Seo::setGroup(app()->getLocale()) ->setDefault([ 'og_site_name' => config('app.name'), 'og_url' => URL::full(), 'og_locale' => app()->getLocale(), ])->renderHtml() !!}
获取数组标签(用于 API 资源等)
\Seo::setGroup(app()->getLocale()) ->setDefault([ 'og_site_name' => config('app.name'), 'og_locale' => app()->getLocale(), ])->getTags();
您可以将标签保存到模型的数据库中
$post->seo('uk')->updateOrCreate([], ['tags' => ['title' => 'Hello Page', 'description' => 'Lorem Ipsum'], 'group' => 'uk']);
并获取标签(用于编辑)以供仪表板使用
$tags = $post->getRawSeoTags('uk');
变更日志
有关最近更改的更多信息,请参阅CHANGELOG
致谢
许可协议
MIT 许可协议(MIT)。有关更多信息,请参阅许可文件