改进您的搜索结果在谷歌和其他搜索引擎中的显示方式对于吸引用户访问您的网站至关重要。这篇博文将向你展示如何使用Sitecore的saxa在搜索结果中显示评论分数。这对你的生意有什么帮助?为什么要向用户提供这些信息?在我的同事Megan Jensen的博客上找到了所有关于你为什么想这样做的科学在这里.
最终目标
在这个谷歌的指环王搜索结果中,你可以看到有一个星级评分图表,一个总体评分,以及平均为8.8/10的评论总数。这些信息不是由谷歌神奇地拉出来的。你必须以一种谷歌能够消化这些信息的方式告诉谷歌这些评论分数。
使用模式。NET实现最终目标
org已经创建了数百个具有各种属性的对象,用于web页面。这种结构化数据被谷歌、必应和其他流行的应用程序识别。你可以通过创建这些应用程序可以使用的对象来增强你的在线形象。模式。NET是可应用的.NET库,它拥有这些对象的c#版本。它将用于将这些对象序列化为JSON/JSON- ld。序列化之后,您将把对象放在页面的
元素中。这样做之后,数据就准备好供其他应用程序使用了。步骤1 -在Sitecore中创建控制器渲染
在/sitecore/layout/renderings下面,创建一个控制器渲染,就像上面的截图一样。我的控制器将位于功能层的元数据项目中。
步骤2 -在中添加渲染到局部输出
在/sitecore/content/
步骤3 -设置控制器,存储库,模型和视图
安装模式。NET包通过NuGet。
公共类SchemaMarkupModel {public bool HasJsonLd {get;设置;} public string JsonLd {get;设置;}}
然后创建一个类似于上面的模型来存储JSON-LD字符串元数据。
public类SchemaMarkupController: StandardController {private readonly IAbstractRepository_schemamarkupprespository;public SchemaMarkupController(IAbstractRepository schemaMarkupRepository) {_schemamarkuprepository = schemaMarkupRepository;}受保护的覆盖对象GetModel(){返回_schemaMarkupRespository.GetModel();}}
创建模型后,像上面那样创建控制器。您会记得在步骤1中创建的控制器呈现调用了Index方法。这个索引方法可以在标准控制器中找到,标准控制器是由saxa提供的对象。IAbstractRepository接口也由saxa提供。您将重写GetModel()方法来为刚刚创建的SchemaMarkupModel补充水分。
公共类SchemaMarkupRepository: IAbstractRepository{私有只读IContext _context;public SchemaMarkupRepository(IContext context) {_context = context ??throw new ArgumentNullException(nameof(context));} public SchemaMarkupModel GetModel() {SchemaMarkupModel model = new SchemaMarkupModel();模型。JsonLd = GetJsonLd(_context.Item);模型。string.IsNullOrEmpty(model.JsonLd);回归模型;} private string GetJsonLd(Item pageItem) {// TO DO:创建JSON-LD视图}}
接下来,您需要创建存储库,该存储库将用于实现控制器中的GetModel()方法。在上面的存储库中,我需要注入IContext,因此我可以使用它来检索当前页面项,以便为该特定页面定制JSON-LD数据。如果你不需要获取页面项,你可以去掉IContext位。您将在下一步中实现GetJsonLD()方法。
@model Feature.Metadata.Models.SchemaMarkupModel @{Layout = Sitecore.Configuration.Settings.GetSetting("XA.Foundation.Presentation. presentation . getsetting . "MetaComponentLayoutPath”、“. ./ saxa /Meta Component Layout.cshtml");} @if (Model.HasJsonLd) {}
最后,创建将输出您正在创建的JSON-LD对象的视图。您将在 .
您将需要使用Schema。NET对象,该对象最好地表示要显示评级的项目。如果要显示一本书的评级,请使用book对象。如果特定对象不存在,则使用通用Product对象。显示公司评级?使用组织对象。可以通过Schema使用许多不同的对象。NET来标记元数据。不过,请注意,避免在页面上放置误导内容的元数据。如果您有意或无意地添加了与页面内容不匹配的错误元数据,搜索引擎将对您的搜索分数进行惩罚。