Добавляем (регистрируем) мета-теги в Yii2
Способы добавления (регистрации) мета-тегов в Yii2 и управления ими.
Первое, что необходимо сделать - проверить, присутствует ли в шаблоне (layout) метод head()
:
<head> <title><?= Html::encode($this->title) ?></title> <?php $this->head() ?> </head>
Установка мета-тегов через экшен контроллера:
$this->view->title = 'Заголовок страницы'; $this->view->registerMetaTag( ['name' => 'keywords', 'content' => 'Ключевые слова страницы'] ); $this->view->registerMetaTag( ['name' => 'description', 'content' => 'Краткое описание страницы'] );
Способ выше мне больше нравится, но можно и так:
\Yii::$app->view->title = 'Заголовок страница'; \Yii::$app->view->registerMetaTag( ['name' => 'keywords', 'content' => 'Ключевые слова страницы'] ); \Yii::$app->view->registerMetaTag( ['name' => 'description', 'content' => 'Краткое описание страницы'] );
Установка (регистрация) мета-тегов в виде:
<?php /* @var $this yii\web\View */ /* @var $post \common\models\Post */ use yii\helpers\Html; $this->title = 'Заголовок страницы'; $this->registerMetaTag( ['name' => 'keywords', 'content' => 'Ключевые слова страницы'] ); $this->registerMetaTag( ['name' => 'description', 'content' => 'Краткое описание страницы'] ); $this->params['breadcrumbs'][] = $post->name; ?>
Установка
$this->title
в виде переопределит значение, установленное в методе контроллера.
Само сабой в базе данных должны присутствовать поля, например: meta_title
, meta_keywords
, meta_description
, значение которых мы подставим в нужные места.