ivankff / yii2-meta-tags
基于数据库的模型元数据用于SEO
v2.0.1
2020-02-26 10:43 UTC
Requires
- yiisoft/yii2: *
README
基于数据库的模型元数据用于SEO
安装
安装此扩展的首选方式是通过 composer。
运行
composer.phar require --prefer-dist v0lume/yii2-meta-tags "*"
或者
"v0lume/yii2-meta-tags": "*"
将其添加到你的 composer.json 文件的 require 部分中。
使用方法
将 MetaTagBehavior 添加到你的模型中,并进行配置。
public function behaviors() { return [ 'MetaTag' => [ 'class' => MetaTagBehavior::className(), ], ]; }
在应用程序的某处添加 MetaTags,例如在编辑表单中。
echo MetaTags::widget([ 'model' => $model, 'form' => $form ]);
完成!现在,你可以获取当前模型的元数据
echo $model->getBehavior('MetaTag')->title; echo $model->getBehavior('MetaTag')->keywords; echo $model->getBehavior('MetaTag')->description;
或者,通过手动查找模型
use v0lume\yii2\metaTags\model\MetaTag; ... $meta_tag = MetaTag::findOne([ 'model_id' => $id, 'model' => (new \ReflectionClass($model))->getShortName() ]); ... echo $meta_tag->title; echo $meta_tag->keywords; echo $meta_tag->description;
自动注册元标签
你可以使用 MetaTagsComponent 来执行自动注册元标签
在 main.php 配置中配置 MetaTagsComponent
... 'components' => [ ... 'metaTags' => [ 'class' => 'v0lume\yii2\metaTags\MetaTagsComponent', 'generateCsrf' => false, 'generateOg' => true, ], ... ], ...
然后,在你的布局、视图或控制器动作中
$model = \common\models\Page::findOne(['url' => '/']); Yii::$app->metaTags->register($model);
如果传递的 $model 附带了 MetaTagBehavior,组件将为该模型注册元标签。如果没有附加 MetaTagBehavior 或未传递模型,并且 generateCsrf 设置为 true,则组件将仅生成 csrf 元标签。
