我知道我可以在Yii中注册一个新的元标记,我知道该怎么做,但我需要
替换我设置的默认标记,因为当我在文章上时,我想插入
元标记中文章的简短描述;
如何管理元标记?
答案 0 :(得分:9)
如果您使用的是最新版本,则可以为元标记提供ID。
->registerMetaTag('example', 'description', null, array(), 'mytagid');
再次使用相同的id调用registerMetaTag将覆盖它。
http://www.yiiframework.com/doc/api/1.1/CClientScript#registerMetaTag-detail
答案 1 :(得分:7)
您可以使用以下方式为每页设置元标记:
Yii::app()->clientScript->registerMetaTag("This is my meta description", 'description');
Yii::app()->clientScript->registerMetaTag("These, are, my, keywords", 'keywords');
这可以在控制器或视图中设置,显然取决于您查询文章的方式,您可以使内容部分动态如此(假设$model
是您选择的文章而{{1} }是存储元描述的模型属性:
meta_description
上的文档
答案 2 :(得分:2)
你可以试试这个:
1)在'components / Controller.php':
public $metaDescription;
public $metaKeywords;
public function getMetaDescription() {
if(!$this->metaDescription)
return Yii::app()->settings->getValue('meta_description'); //return default description
return $this->metaDescription;
}
public function getMetaKeywords() {
if(!$this->metaKeywords)
return Yii::app()->settings->getValue('meta_keywords'); //return default keywords
return $this->metaKeywords;
}
2)在你的main.php布局中:
...
Yii::app()->clientScript->registerMetaTag($this->getMetaDescription(), 'description');
Yii::app()->clientScript->registerMetaTag($this->getMetaKeywords(), 'keywords');
...
3)在其他布局中:
...
// If you don't do that, the description and keywords will be default for this page.
$this->metaDescription = 'Your description here';
$this->metaKeywords = 'your, keywords, here';
...
注意,Yii :: app() - > settings-> getValue('meta_description')和Yii :: app() - > settings-> getValue('meta_keywords')是我的默认值取自DB。