kfoobar/laravel-meta

Laravel 包,用于管理标题和元标签

v1.0.1 2020-12-11 19:20 UTC

This package is auto-updated.

Last update: 2024-09-20 10:52:58 UTC


README

此包简化了在 Laravel 5 和 Laravel 6 中处理 HTML 元标签和标题标签的工作。

此包可以在任何控制器中使用外观或在任何 blade 文件中使用外观或 blade 指令。

该包支持大多数元标签。它还支持常用的 <title> 标签和 <link> 标签以实现规范。

安装

首先,通过命令行使用 Composer 安装此包

$ composer require kfoobar/laravel-meta

Laravel 5.5 或更高版本

如果您使用自动发现,您不需要做任何事情来启用此包。

Laravel 5.4 或更早版本

您需要在 config/app.php 中为您的 Laravel 应用程序注册服务提供者。

'providers' => [
    '...',
    KFoobar\LaravelMeta\MetaServiceProvider::class,
];

还需要将外观添加到同一个配置文件中

'aliases' => [
    '...',
    'Meta'    => KFoobar\LaravelMeta\Facades\Meta::class,
];

如何使用

如何使用外观

如果您想在控制器中设置标签,您需要添加 Meta 外观的命名空间。

<?php

namespace App\Http\Controllers\Posts;

use App\Http\Controllers\Controller;
use KFoobar\LaravelMeta\Facades\Meta;

class PostController extends Controller
{
...

设置值

您可以使用 set 方法在控制器中设置标签值。

public function index()
{
    Meta::set('title', 'Your new page title');
    Meta::set('description', 'Your new meta description');
    // or...
    Meta::setTitle('Your new page title');
    Meta::setDescription('Your new meta description');    
}

获取值

如果您需要,您也可以使用 get 方法获取值。

public function index()
{
    Meta::get('title', 'Default title if none is set');
    Meta::get('description', 'Default description if none is set');
    // or...
    Meta::getTitle('Default title if none is set');
    Meta::getDescription('Default description if none is set');
 }

获取完整的 HTML 标签

如果您需要将完整的 HTML 标签作为字符串,请使用 tag 方法。

$titleTag = Meta::tag('title');
$titleTag = Meta::tag('title', 'Default title if none is set');

检查值是否已设置

如果您需要检查是否设置了任何值,请使用 has 方法。

if (!Meta::has('title')) {
    Meta::set('title', 'This is a fallback title');
}

如何使用 blade 指令

您可以直接在 blade 文件中使用外观,但有一些 blade 指令可以使您的 blade 文件看起来更整洁。

设置值

使用 @setMeta 指令,您可以在任何 blade 文件中设置标题和元标签的值。

@setMeta('title', 'Your new page title');
@setMeta('description', 'Your new meta description');

获取值

当您想获取标题和元标签的值时,请使用 @getMeta 指令。

@getMeta('title')
@getMeta('title', 'Default title if none is set')

<title>
    @getMeta('title', 'Default title if none is set')
</title>

获取完整的 HTML 标签

当您想打印完整的 HTML 标签时,请使用 @getTag 指令。

@getTag('title')
@getTag('title', 'Default title if none is set')

@getTag('description')
@getTag('description', 'Default description if none is set')

检查值是否已设置

当您需要检查是否设置了任何值时,请使用 @hasMeta 指令。

@hasMeta('author')
   <meta name="author" content="@meta('author')">
@endhasMeta

如果您更喜欢,您也可以使用 @endif 而不是 @endhasMeta

示例

这是我们的 blade 文件

@getTag('description')
@getTag('keywords')
@getTag('robots', 'index, follow')
@getTag('csrf-token')

@getTag('title', 'Default title if none is set')

@hasMeta('canonical')
    @getTag('canonical')
@endhasMeta

这将输出结果

<meta name="description" content="Lorem ipsum dolor...">
<meta name="keywords" content="lorem, ipsum, dolor">
<meta name="robots" content="index, follow">
<meta name="csrf-token" content="4ipX8A07Awf60ZUBPBfy...">

<title>Default title if none is set</title>

<link rel="canonical" href="https://example.com/this-is-a-slug">

贡献

欢迎贡献!

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件