ivankff/yii2-meta-tags

基于数据库的模型元数据用于SEO

安装: 6

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分叉: 7

类型:yii2-extension

v2.0.1 2020-02-26 10:43 UTC

This package is auto-updated.

Last update: 2024-09-26 21:36:40 UTC


README

基于数据库的模型元数据用于SEO

screenshot

安装

安装此扩展的首选方式是通过 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 元标签。