innoweb / silverstripe-metacounter
为剩余字符的字段添加计数器
3.1.0
2024-06-20 02:33 UTC
README
概述
在CMS中为元标题和描述字段添加限制计数器。
可以配置两个级别的限制,以允许某些搜索引擎(例如Google)使用更长的文本。
要求
- SilverStripe CMS 5.x
注意:此版本与SilverStripe 5兼容。对于SilverStripe 4,请参阅2版本分支。对于SilverStripe 3,请参阅1.1版本分支。
安装
使用composer安装模块
composer require innoweb/silverstripe-metacounter dev-master
然后运行dev/build。
配置
默认限制如下,可以在您的site's config.yml中进行覆盖
Innoweb\MetaCounter\Model\SiteTreeExtension:
meta_title_length: 55
meta_title_length_extended: 55
meta_description_length: 160
meta_description_length_extended: 300
当文本超过字段的配置length
时,计数器将变为橙色,当超过length_extended
时,它将变为红色并倒计时。
如果未配置length_extended
或与length
相同,则当文本超过length
时计数器将变为红色。
故障排除
有时您可能已将MetaTitle字段添加到您的页面子类中,并且正确配置了长度,但计数器没有出现。
如果您手动添加了字段而不是通过kinglozzer/metatitle,则此模块中的页面扩展可能在您的MetaTitle字段出现之前运行(因此没有字段可供计数器附加)。
为了防止这种情况,请在getCMSFields()
内部使用beforeUpdateCMSFields()
public function getCMSFields()
{
$this->beforeUpdateCMSFields(function(FieldList $fields) {
$fields->insertBefore(
'MetaDescription',
TextField::create('MetaTitle', $this->fieldLabel('MetaTitle'))
);
});
$fields = parent::getCMSFields();
// your other class-specific CMS fields setup
return $fields;
}
许可证
BSD 3-Clause许可证,请参阅许可证