lionix / seo-manager
Laravel 框架的 SEO 管理器
Requires
- php: ^7.0|^8.0
- illuminate/support: 5.5.* || 5.6.* || 5.7.* || 5.8.* || 6.* || 7.* || 8.*
This package is auto-updated.
Last update: 2024-09-18 23:12:33 UTC
README
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 后,您必须导入您的路由以开始管理它们。
路由导入将存储所有 GET 路由到数据库中(除了在 "except_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>
标签内部使用。
贡献
如何开始在此项目上进行开发
-
在现有的 Laravel 项目中安装模块,并检查模块是否正常工作。
-
删除文件夹 vendor/lionix/seo-manager。
-
将模块的分支复制到 vendor/lionix/seo-manager 文件夹中(不知道如何创建分支?请参阅 https://kbroman.org/github_tutorial/pages/fork.html)
-
将以下行添加到您的 webpack.mix.js 中
mix.js('vendor/lionix/seo-manager/src/vue/seo-manager.app.js', 'public/vendor/lionix/js');
-
运行 NPM 监视命令
npm run watch
-
如果一切正常,您就可以开始开发此模块了
-
请记住将您的
public/vendor/lionix/js/seo-manager.app.js
复制到vendor/lionix/seo-manager/src/assets/seo-manager.app.js