xiNi / silverstripe-metacounter
3.1.0
2024-06-20 02:33 UTC
README
SilverStripe 元数据限制计数器
概述
在 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。
配置
默认限制如下,可以在您站点的 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 许可证,请参阅 许可证