fomvasss/laravel-seo

Laravel SEO 包

1.7.0 2024-03-20 16:03 UTC

This package is auto-updated.

Last update: 2024-09-20 17:19:27 UTC


README

License Build Status Latest Stable Version Total Downloads Quality Score

使用此包,您可以从 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)。有关更多信息,请参阅许可文件