creativecodelabs/silverstripe-social-meta-tags

为 Silverstripe 网站添加社交媒体元标签。

1.0 2018-04-12 14:29 UTC

This package is not auto-updated.

Last update: 2024-09-27 17:02:45 UTC


README

为 Silverstripe 网站添加社交媒体元标签。

描述

silverstripe-social-meta-tags 为 SiteTree 和子页面类型添加了 OpenGraph (Facebook) 和 Twitter 的社交媒体元标签。

支持的社交媒体元标签包括

  • OpenGraph (Facebook)
    • og:site_name
    • og:title
    • og:image
    • og:description
    • og:url
  • Twitter
    • twitter:site
    • twitter:title
    • twitter:image
    • twitter:description
    • twitter:card

要求

SilverStripe 3.5+

安装

  1. composer require creativecodelabs/silverstripe-social-meta-tags
  2. 运行 /dev/build?flush=all
  3. 默认情况下,该模块将为所有页面类型渲染社交媒体元标签。

默认值

默认情况下,该模块将使用以下字段来填充元标签

  • og:type --> "website"
  • og:site_name --> SiteConfig.Title
  • og:title --> Title
  • og:description --> MetaDescription
  • og:url --> AbsoluteLink()
  • twitter:title --> Title
  • twitter:description --> MetaDescription
  • twitter:card --> "summary"

注意: twitter:card 默认设置为 "summary",除非使用图像字段。如果使用图像字段,则内容将设置为 "summary_large_image"

配置

通过编辑 mysite/_config/config.yml 来配置该模块,并设置以下选项

SocialMetaTags:
  default_title: 'PageTitle' 
  default_description: 'MetaDescription' 
  meta_description_default: true 
  twitter_site: '' 
  titles:	
    ClassName: 'FieldName'
    ClassName1: 'FieldName1'
  descriptions:
    ClassName: 'FieldName'
    ClassName1: 'FieldName1'
  images:	
    ClassName: 'FieldName'
    ClassName1: 'FieldName1'
  types:
    ClassName: 'website'
    ClassName1: 'article'
  • default_title - 覆盖要使用的默认标题字段;默认使用 PageTitle
  • default_description - 覆盖要使用的默认描述字段;默认使用 MetaDescription
  • meta_description_default - 标志,表示是否在选择的描述字段为空时回退到 MetaDescription
  • twitter_site - 用于 twitter:site 元标签的内容。
  • titles - 一个包含类名的数组,其值是用于标题元标签的 Text 字段的名称。对于向 DataObjects 添加社交媒体元标签输出非常有用。
  • descriptions - 一个包含类名的数组,其值是用于描述元标签的 Text 字段的名称。对于向 DataObjects 添加社交媒体元标签输出非常有用。
  • images - 一个包含类名的数组,其值是用于图像元标签的 Image 字段的名称。对于向 DataObjects 添加社交媒体元标签输出非常有用。
  • types - 一个包含类名的数组,其值是用于 og:type 元标签的内容。

示例 config.yml

SocialMetaTags:
  default_title: 'PageTitle'
  default_description: ''
  meta_description_default: true
  titles:
    Category: 'Name'
    Product: 'Name'
    Recipe: 'Name'
  descriptions:
    Category: 'ShortDescr'
    Product: 'Summary'
    Recipe: 'MetaDescription'
  images:
    AboutUsPage: 'LogoImage'
    Category: 'BeautyShot'
    Product: 'BeautyShot'
    Recipe: 'Image'
  types:
    Recipe: 'article'
  twitter_site: ''

将社交媒体元标签添加到 DataObjects

默认情况下,此模块仅将社交媒体元标签添加到 SiteTree 对象。

要将社交媒体元标签添加到 DataObjects

  • /mysite/_config.php 中,为每个您希望添加扩展的 DataObject 类添加扩展。
    • 例如: Recipe::add_extension('SocialMetaTagsExtension');
  • /mysite/_config/config.yml 中,为您的类设置 titlesdescriptionsimages 的选项(如果需要)。
    • 例如,请参阅上面的示例 config.yml
  • 在您的DataObject类中,在getCMSFields()方法中添加新字段
  public function getCMSFields() {
      $fields = parent::getCMSFields();
      
      ...
      
      $fields->addFieldToTab('Root.Main', new TextareaField("SocialMetaDescription"));
      $fields->addFieldToTab('Root.Main', new UploadField("SocialMetaImage"));
      
      return $fields;
  }
  • 运行 /dev/build?flush=all

许可证

本项目采用GPL v3许可证