lostcause/laravel-seo-meta

1.0.2 2016-02-23 15:00 UTC

This package is auto-updated.

Last update: 2024-09-24 15:50:55 UTC


README

用于处理Laravel应用中SEO元标签的包

安装

通过Composer

$ composer require am2studio/laravel-seo-meta

使用方法

首先运行该包的迁移(src/migration/)

Schema::create('seo_metas', function (Blueprint $table) {
	$table->increments('id');
	$table->string('model_type');
	$table->integer('model_id')->unsigned();
	$table->text('key');
	$table->text('value');

	$table->timestamps();
});

对于使用SEO元标签的每个模型,添加特质 "SeoMetaTrait" 并实现接口 "SeoMetaInterface"

use AM2Studio\Laravel\SeoMeta\SeoMetaTrait;
use AM2Studio\Laravel\SeoMeta\SeoMetaInterface;

class User implements  SeoMetaInterface
{
    use SeoMetaTrait;

"SeoMetaInterface" 接口包含模型需要实现的2个函数:"seoMetasConfig()" 和 "seoMetas()"

"seoMetasConfig()" 是模型的元数据配置

"seoMetas()" 是与模型 SEO 元标签的 "hasMany" 关联

public function seoMetasConfig()
{
	return [
		'title'         => ['generator' => 'example.com - '. $this->title],
		'description'   => ['generator' => 'green-rush.com - '. $this->title . ' - ' . $this->short_description,],
		'keywords'      => ['generator' => 'greenrush, dispensary, ' . $this->title . ', ' . $this->short_description,
		'edit'=> false],
		'og:image'      => ['generator' => ["http://i.stack.imgur.com/hEobN.jpg", "http://i.stack.imgur.com/hEobN2.jpg"]],
		'twitter:site'  => [],
	];
}

public function seoMetas()
{
	return $this->hasMany(SeoMeta::class, 'model_id')->where(['model_type' => __CLASS__]);
}

您希望模型使用的每个 SEO 元标签都必须在此处定义。可能的 SEO 元标签列表

title						-> string
description					-> string
keywords           			-> string
canonical      				-> string
article:published_time		-> string
article:section				-> string
og:description				-> string
og:title					-> string
og:url               		-> string
og:type             		-> string
og:locale           		-> string
og:locale:alternate			-> array
og:site_name        		-> string
og:image         			-> array
og:image:url       			-> array
og:image:size       		-> string
twitter:card       			-> string
twitter:title      			-> string
twitter:site				-> string

对于您在配置中定义的每个 SEO 元标签,定义生成器(SEO 元标签将如何生成)和编辑(如果 SEO 元标签可以被编辑或将在模型保存时始终生成,默认为 true)

在模型上显示 SEO 元数据表单

{!! \AM2Studio\Laravel\SeoMeta\SeoMetaHelper::form($dispensary) !!}

变更日志

请参阅 CHANGELOG 了解最近的变化信息。

贡献

请参阅 CONTRIBUTINGCONDUCT 了解详细信息。

许可证

MIT许可证(MIT)。请参阅 许可证文件 了解更多信息。