mxschll/laravel-meta-tags

此包已被废弃,不再维护。未建议替代包。

为 Laravel 提供更好的 SEO。

v1.1.0 2020-08-28 11:12 UTC

This package is auto-updated.

Last update: 2023-02-28 16:56:27 UTC


README

Build Status

此包允许您轻松地从控制器、blade 视图或其他任何地方管理 HTML 元标签。它非常可定制且易于配置。

安装

导航到您 Laravel 项目的根目录,并在控制台中运行以下命令

composer require mxschll/laravel-meta-tags

该包将自动注册一个服务提供者。

为了配置您的安装,您需要发布配置文件

php artisan vendor:publish --provider="mxschll\MetaTags\MetaTagsServiceProvider"

配置文件位于 src/config/meta-tags.php

第一步

要开始使用,请在页面 <head> 标签内添加 @meta Blade 指令

<head>
    <title>Laravel</title>
    @meta
    ....
</head>

现在,所有标准标签都按照配置文件中的设置插入到页面中。

在 Blade 模板中的使用

添加特定元标签

如果您只想添加特定标签,可以使用 Blade 指令 @meta_get()

<head>
    <title>Laravel</title>
    @meta_get('keywords')
    @meta_get('og:description')
    ....
</head>

设置元标签值

要在 Blade 模板内动态设置元标签,使用 @meta_set()

<head>
    <title>Laravel</title>
    @meta_set({
    	"description": "This is a very nice description.",
    	"robots": "noindex"
	})
    @meta
    ....
</head>

这将生成以下元标签

...
<meta name="description" content="This is a very nice description.">
<meta name="twitter:description" content="This is a very nice description.">
<meta property="og:description" content="This is a very nice description.">
<meta name="robots" content="noindex">
...

如您所见,所有描述标签的值都已更改。当然,您也可以通过提供确切的标签名称来为每个标签设置单独的值

<head>
    <title>Laravel</title>
    @meta_set({
    	"description": "This is a very nice description.",
    	"twitter:description": "This is a twitter card description.",
    	"og:description": "This is an open graph description."
    	"robots": "noindex"
	})
    @meta
    ....
</head>

这将生成以下元标签

...
<meta name="description" content="This is a very nice description.">
<meta name="twitter:description" content="This is a twitter card description.">
<meta property="og:description" content="This is an open graph description.">
<meta name="robots" content="noindex">
...

在控制器中的使用

您可以通过使用 \Meta::set($tag, $value) 在 Laravel 应用程序的任何地方设置元标签。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PageController extends Controller
{
    public function __construct()
    {
        \Meta::set('og:site_name:', 'Laravel');
    }
    
    public function showHomePage(Request $request)
    {
        \Meta::set('description', 'This is the home page description.');
        return view('home');
    }

    public function showArticlePage(Request $request)
    {
        \Meta::set('description', 'This is the article page description.');
        \Meta::set('og:type', 'article');
        return view('article');
    }
}

在路由中的使用

Route::get('/', function () {
    Meta::set('description', 'Hello World!');
    return view('welcome');
});

配置

在设置元标签值时,您可以使用一些特殊的值。这些值不仅可以用于配置文件,还可以用于可以设置元标签的任何地方。

描述 示例
[url] 被替换为当前请求的 URL。 [url]
[asset:ressource] ressource 传递给 asset() 辅助函数。 [asset:img/social.png]