fullmvc/yii2-metamanager

这是为yii2开发的元标签管理器。

安装: 48

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 0

开放问题: 0

类型:yii2-extension

dev-master 2019-09-15 08:29 UTC

README

这是一个为yii2开发的扩展,帮助网站添加元标签以获得更好的SEO评分。

Total Downloads

安装

安装此扩展最简单的方法是通过 composer

运行以下命令之一:

php composer.phar require --prefer-dist fullmvc/yii2-metamanager "dev-master"

或者

"fullmvc/yii2-metamanager": "dev-master"

将以下内容添加到您的 composer.json 文件的require部分。

配置

安装此扩展后,您需要在配置文件中将它添加为组件,如下所示

'components' => [
    'metaManager' => 'fullmvc\metamanager\MetaManager',
],

在这里,您可以指定每个标签的默认值,例如

'components => [
    'metaManager' => [
        'class' => 'fullmvc\metamanager\MetaManager',
        'titlePostfix' => ' - My Webshop',
        // default: 150, the maximum char length for description is 160 at 2019.04.08
        'descriptionLength' => 150, 
        'defaultMetaDatas' => [
            'DC.description' => ['content' => 'My website\'s title'],
            'DC.title' => ['content' => 'This is my very own website'],
            'twitter:description' => ['content' => 'This is my very own website'],
            'twitter:title' => ['content' => 'My website\'s title'],
            'og:description' => ['content' => 'This is my very own website'],
            'og:title' => ['content' => 'My website\'s title'],
        ],
    ],
]

用法

直接调用注册方法

Yii::$app->metaManager->registerTitle('My website\'s title');
Yii::$app->metaManager->registerDescription('This is my very own website');

或者注册一个模型,该类将为您完成所有工作

Yii::$app->metaManager->registerModel($myModel);

请注意,模型需要具有某些属性或getter方法才能添加您想要的元标签

  • 基础标题通过:getMetaTitle() 方法或 metaTitle 属性,getTitle() 方法或模型的 title 属性获取
  • 基础描述通过:getMetaDescription() 方法或 metaDescription 属性,getDescription() 方法或模型的 description 属性获取
  • 基础关键词通过:getMetaKeywords() 方法或 metaKeywords 属性,getKeywords() 方法或模型的 keywords 属性获取
  • 基础图像通过:getMetaImageUrl() 方法或 metaImageUrl 属性,getImageUrl() 方法或模型的 imageUrl 属性获取

这些基本方法可以通过在配置文件中指定来覆盖

'components' => [
    'metaManager' => [
        'class' => 'fullmvc\metamanager\MetaManager',
        'metaAttributes'=> [
            'common\models\Blog' => [ // for a specific model
                'title' => 'myTitleAttribute',
                'description' => 'myDescriptionAttribute',
                'image' => 'myImageAttribute'
            ],

            ...

            [ // or by globally
                'title' => 'myTitleAttribute',
                'description' => 'myDescriptionAttribute',
                'image' => 'myImageAttribute'
            ]
        ]
    ]
],