xiNi/silverstripe-metacounter

此包已被弃用且不再维护。作者建议使用 innoweb/silverstripe-metacounter 包。

为剩余字符的元字段添加计数器

安装: 316

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 4

分支: 1

开放问题: 0

语言:JavaScript

类型:silverstripe-vendormodule

3.1.0 2024-06-20 02:33 UTC

This package is auto-updated.

Last update: 2024-06-20 02:34:47 UTC


README

SilverStripe 元数据限制计数器

Version License

概述

在 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 许可证,请参阅 许可证