bramdeleeuw / silverstripe-schema
将模式添加到 Silverstripe 页面
Requires
- silverstripe/framework: ^4 || ^5
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 中搜索以下字段:Address
、Suburb
、State
、Postcode
、Country
和 Phone
。这些可以通过 silverstripe-australia/addressable
模块轻松添加。本地企业构建器还会检查是否设置了 Geocodable
扩展,如果是,则将 lat 和 lng 添加到构建的模式中。
BreadcrumbsSchemaBuilder
面包屑模式构建器寻找标准的 getBreadcrumbItems()
方法。如果您需要,可以在页面类中重写此方法。
OrganizationSchemaBuilder
组织构建器需要在站点配置中有一个 phone
字段。对于 SameAs
字段(在知识图谱框中显示社交媒体链接)构建器现在寻找 SiteConfig 上的 SocialMediaPlatform
关系。这将是更通用方法的一部分。
WebsiteSchemaBuilder
网站模式构建器设置站点名称和 URL,如果启用 FulltextSearchable,它还添加一个搜索操作。搜索操作在 Google 上作为 Sitelinks 搜索框 显示。
待办事项
以下模式将在不久的将来添加,请随时提交 PR 或提出建议。
- 活动
- 产品
- 课程
- 音乐
- 食谱
- 评论
- 电影
- 电视季
- 电视剧集
- 视频