habib-eg / seo-manager
Laravel 框架的 SEO 管理器
Requires
- php: >=7.0
- ext-json: *
- artesaos/seotools: ^0
- illuminate/support: ^5 || ^6 || ^7 || ^8
- mohamedhabibwork/laravel-vue-i18n-generator: ^0
- spatie/laravel-sitemap: ^5
This package is auto-updated.
Last update: 2024-09-21 00:44:13 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')
获取仅包含开放图元数据。如果您想获取具体的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 Watch命令
npm run watch
-
如果一切正常,您就可以开始开发模块了
-
请务必将您的
public/vendor/lionix/js/seo-manager.app.js
复制到vendor/lionix/seo-manager/src/assets/seo-manager.app.js