lionix/seo-manager

Laravel 框架的 SEO 管理器

v1.4.6 2021-02-21 09:27 UTC

README

MadeWithLaravel.com shield

lionix/seo-manager 包将为您提供界面,您可以从该界面分别管理所有页面元数据并获得动态变化的内容。让我们看看如何。

更新

更新到版本 > v1.2.* 后,您必须运行

php artisan vendor:publish --provider="Lionix\SeoManager\SeoManagerServiceProvider" --tag=config --force
php artisan vendor:publish --provider="Lionix\SeoManager\SeoManagerServiceProvider" --tag=assets --force

php artisan migrate

以发布最新的配置和新迁移文件。

本地化

在版本 v1.2.* 中,您将能够本地化元数据并设置数据的翻译。

为此,您只需点击右上角的“添加区域”按钮添加您可用的区域,并选择您要添加翻译的区域。

就是这样,包将自动从网站检测到您的区域并设置所需的翻译,您不需要进行任何其他配置。简单,不是吗?

安装

您可以通过 composer 安装此包

composer require lionix/seo-manager

发布包文件

php artisan vendor:publish --provider="Lionix\SeoManager\SeoManagerServiceProvider"

此命令将创建 config/seo-manager.php 文件,并将包资源目录复制到 public/vendor/lionix

配置

config/seo-manager.php 文件中,您可以进行以下配置

return [
    /**
     * Database table name where your manager data will be stored
     */
    'database' => [
            'table' => 'seo_manager',
            'locales_table' => 'seo_manager_locales',
            'translates_table' => 'seo_manager_translates'
        ],
        
    /**
     * Set default locale,
     * It will be added as default locale
     * when locales table migrated
     */
    'locale' => 'en',

    /**
     * Path where your eloquent models are
     */
    'models_path' => '',

    /**
     * Route from which your Dashboard will be available
     */
    'route' => 'seo-manager',

    /**
     * Middleware array for dashboard
     * to prevent unauthorized users visit the manager
     */
    'middleware' => [
        //  'auth',
    ],

    /**
     * Routes which shouldn't be imported to seo manager
     */
    'except_routes' => [
        'seo-manager',
        'admin'
        //
    ],

    /**
     * Columns which shouldn't be used ( in mapping )
     */
    'except_columns' => [
        // "created_at",
        // "updated_at",
    ],

    /**
     * Set this parameter to true
     * if you want to have "$metaData" variable
     * shared between all views in "web" middleware group
     */
    'shared_meta_data' => false
];

完成所有配置后,运行 php artisan migrate 以创建 SEO 管理器表。

就是这样,现在您的 SEO 管理器将从 /seo-manager URL(或,如果您更改了路由配置,则通过该配置 URL)可用

使用方法

访问仪表板 URL 后,您必须导入您的路由以开始管理它们。

routes import

路由导入将存储所有 GET 路由到数据库中(除了在 "except_routes" 配置中指定的路由)。

imported routes

让我们开始吧!

映射

要获取动态变化的元数据,您应将路由参数映射到正确的模型。

参数:路由参数

模型:您正在使用它通过路由参数获取记录的 Eloquent 模型

按:您正在使用的数据库表列名,通过它通过路由参数获取记录

使用列:我们应使用的数据库表列以进行进一步映射

注意:如果您通过 protected $appends 在模型内部附加了属性,并且想要在映射中使用它们,您必须在您的模型中使用 Lionix\SeoManager\Traits\Appends; trait。

映射仅适用于具有参数的路由

接下来的步骤是设置关键词、描述、标题、URL、作者、标题动态、OpenGraph 数据。

关于“标题动态”

在这里,您可以拖放映射的参数、您的标题并写入自定义文本以生成页面的动态标题。每次更改“标题”或映射的参数值时,动态标题将自动更改。

关于“Open Graph”

在这里,您可以写入您的 Open Graph 数据或将字段映射到基于参数的映射。

示例用法

通过 SeoManager Facade

use Lionix\SeoManager\Facades\SeoManager;
这将返回一个包含所有 SEO 管理器数据的数组
SeoManager::metaData();

示例

array:13 [▼
  "keywords" => "First Keyword, Second, Third"
  "description" => "Test Description"
  "title" => "Test Titile"
  "url" => "http://example.com/users/1"
  "author" => "Sergey Karakhanyan"
  "title_dynamic" => "Test Titile - Custom Text - Test User Name "
  "og:url" => "http://example.com/users/1"
  "og:type" => "website"
  "og:image:url" => "https://wallpaperbrowse.com/media/images/3848765-wallpaper-images-download.jpg"
  "og:title" => "Test Titile - Custom Open Graph Text"
  "og:locale" => "en_GB"
  "og:site_name" => "Seo Manager Package"
  "og:description" => "Open Graph Description"
]

SeoManager::metaData(); 方法可以接收属性变量以获取某些属性的值

示例

SeoManager::metaData('keywords'); 将返回 "First Keyword, Second, Third"

仅获取 OpenGraph 数据数组
SeoManager::metaData('og_data');

示例

array:7 [▼
  "og:url" => "http://example.com/users/1"
  "og:type" => "website"
  "og:image:url" => "https://wallpaperbrowse.com/media/images/3848765-wallpaper-images-download.jpg"
  "og:title" => "Test Titile - Custom Open Graph Text"
  "og:locale" => "en_GB"
  "og:site_name" => "Seo Manager Package"
  "og:description" => "Open Graph Description"
]
别名

SeoManager::metaKeywords()

SeoManager::metaTitle()

SeoManager::metaDescription()

SeoManager::metaUrl()

SeoManager::metaAuthor()

SeoManager::metaTitleDynamic()

SeoManager::metaOpenGraph() - 可以接收属性变量以获取某些 OG 属性的值

示例

SeoManager::metaOpenGraph('og:image:url')

将返回 "https://wallpaperbrowse.com/media/images/3848765-wallpaper-images-download.jpg"

通过 辅助函数

metaData()

metaKeywords()

metaTitle()

metaDescription()

metaUrl()

metaAuthor()

metaTitleDynamic()

metaOpenGraph()

通过 @Blade 指令

您可以在视图文件中使用这些 blade 指令来获取元数据。

@meta

输出示例

<meta property="keywords" content="First Keyword, Second, Third">
<meta property="description" content="Test Description">
<meta property="title" content="Test Titile">
<meta property="url" content="http://packages.loc/users/1">
<meta property="author" content="Sergey Karakhanyan">
<meta property="title_dynamic" content="Test Titile - Custom Text - Test User Name ">
<meta property="og:url" content="http://packages.loc/users/1">
<meta property="og:type" content="website">
<meta property="og:image:url" content="https://wallpaperbrowse.com/media/images/3848765-wallpaper-images-download.jpg">
<meta property="og:title" content="Test Titile - Custom Open Graph Text">
<meta property="og:locale" content="en_GB">
<meta property="og:site_name" content="Seo Manager Package">
<meta property="og:description" content="Open Graph Description">

@meta 可以接收属性参数

@meta('description')

输出示例

<meta property="description" content="Test Description">

注意: 您不能在 @meta() 中添加开放图属性,如 @meta('og-url')。但您可以通过 @meta('og_data') 获取仅限 OpenGraph 的元数据。如果您想获取具体的 OG 参数元标签,可以使用 @openGraph(与 @meta('og_data') 相似)并传递参数,如 @openGraph('og:url')

注意 #2: 如果您想在 og 数据中进行修改并手动显示,应在 @meta 之前进行。

示例

<meta property="og:image:url" content="{{ asset(metaOpenGraph('og:image:url')) }}">
@meta
别名

@keywords

@url

@author

@description

@title

@openGraph

@titleDynamic - 将返回动态生成的标题,您可以在 <title></title> 标签内部使用。

贡献

如何开始在此项目上进行开发

  1. 在现有的 Laravel 项目中安装模块,并检查模块是否正常工作。

  2. 删除文件夹 vendor/lionix/seo-manager。

  3. 将模块的分支复制到 vendor/lionix/seo-manager 文件夹中(不知道如何创建分支?请参阅 https://kbroman.org/github_tutorial/pages/fork.html

  4. 将以下行添加到您的 webpack.mix.js 中 mix.js('vendor/lionix/seo-manager/src/vue/seo-manager.app.js', 'public/vendor/lionix/js');

  5. 运行 NPM 监视命令 npm run watch

  6. 如果一切正常,您就可以开始开发此模块了

  7. 请记住将您的 public/vendor/lionix/js/seo-manager.app.js 复制到 vendor/lionix/seo-manager/src/assets/seo-manager.app.js

鸣谢