bramdeleeuw/silverstripe-schema

将模式添加到 Silverstripe 页面

安装量: 7,798

依赖项: 2

建议者: 1

安全性: 0

星标: 9

关注者: 3

分支: 5

开放问题: 1

类型:silverstripe-vendormodule

3.0.2 2024-03-05 11:05 UTC

This package is auto-updated.

Last update: 2024-09-05 12:13:29 UTC


README

将模式添加到您的页面。此模块包含以下标准模式

  • 网站模式
  • 面包屑模式
  • 组织模式
  • 本地企业模式
  • 新闻文章模式

要了解更多关于这些模式以及为什么应该在页面上包含它们的信息,请参阅 Google 的 文档

最终目标是创建一个模块,该模块添加必要的工具,以便轻松创建自己的模式。这是通过扩展基本 SchemaBuilder 类来实现的。

创建新的模式

一个示例模式构建器,它返回一个包含属性的基数组。

/**
 * Class MySchemaBuilder
 */
class MySchemaBuilder extends SchemaBuilder 
{
    public function getSchema($page)
    {
        $mySchema = array(
            // schema properties
        )
        return $mySchema;
    }
}

get_schema() 方法的输出是 json 编码的,并附加到页面的头部。输出可以是数组或对象。对于标准构建器,模块提供不同的 SchemaTypes,可以通过这些类型来构建模式,作为数组的替代方案。您可以检查预定义的构建器来查看这些类型在实际中的应用。将来可能还会提供可能的工作模式类型列表。如果您创建了任何模式类型或构建器,提交 pull request 将非常感谢!

添加模式

要将模式添加到不同的页面类型,您只需在配置中指定这些即可

Page:
  default_image: 'path/to/logo.png'
  extensions:
    - 'Broarm\Schema\SchemaExtension'
  active_schema:
    - 'Broarm\Schema\Builder\LocalBusiness'
    - 'Broarm\Schema\Builder\Website'
    - 'Broarm\Schema\Builder\Breadcrumbs'
BlogPost:
  active_schema:
    - 'Broarm\Schema\Builder\NewsArticle'

LocalBusinessSchemaBuilder

本地企业模式构建器在 SiteConfig 中搜索以下字段:AddressSuburbStatePostcodeCountryPhone。这些可以通过 silverstripe-australia/addressable 模块轻松添加。本地企业构建器还会检查是否设置了 Geocodable 扩展,如果是,则将 lat 和 lng 添加到构建的模式中。

BreadcrumbsSchemaBuilder

面包屑模式构建器寻找标准的 getBreadcrumbItems() 方法。如果您需要,可以在页面类中重写此方法。

OrganizationSchemaBuilder

组织构建器需要在站点配置中有一个 phone 字段。对于 SameAs 字段(在知识图谱框中显示社交媒体链接)构建器现在寻找 SiteConfig 上的 SocialMediaPlatform 关系。这将是更通用方法的一部分。

WebsiteSchemaBuilder

网站模式构建器设置站点名称和 URL,如果启用 FulltextSearchable,它还添加一个搜索操作。搜索操作在 Google 上作为 Sitelinks 搜索框 显示。

待办事项

以下模式将在不久的将来添加,请随时提交 PR 或提出建议。

  • 活动
  • 产品
  • 课程
  • 音乐
  • 食谱
  • 评论
  • 电影
  • 电视季
  • 电视剧集
  • 视频