innoweb/silverstripe-metacounter

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

安装次数: 1,520

依赖项: 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-09-20 03:04:26 UTC


README

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。

配置

默认限制如下,可以在您的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许可证,请参阅许可证