kfoobar / laravel-meta
Laravel 包,用于管理标题和元标签
Requires
- php: >=7.0
- illuminate/support: ^5.5|^6|^7|^8
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)。有关更多信息,请参阅 许可文件。