4

我从Google RichSnippets 测试工具中得到这个错误:

错误:页面包含不属于架构的属性“查询输入”。

但是我在哪里做错了?

HTML

<div id="dkAjaxSearch">
<input id="ajaxSearch" type="text" value="" name="search_term" itemprop="query-input">
Press Enter to search
</div>

JSON-LD

<script type="application/ld+json">
{
   "@context": "http://schema.org",
   "@type": "WebSite",
   "url": "https://domain.com/",
   "potentialAction": {
     "@type": "SearchAction",
     "target": "http://domain.com/search/{search_term_string}",
     "query-input": "required name=search_term_string"
   }
}
</script>

文档搜索结果中改进的搜索框

4

2 回答 2

3

它在有关 Actions 的文档中进行了解释:

为了制定完整的请求,通常需要用户或客户提供其他信息。为了促进这个过程,我们需要能够在潜在动作中描述如何构建这些输入。由于我们需要这种能力来填充 Action 的任何属性,因此我们使用连字符(“-”)分隔符引入属性注释的概念。例如,通过在潜在操作上指定“位置输入”属性,我们表明“位置”是完成该操作的受支持输入。

但是由于该属性不存在(即,它没有在属性表中定义SearchAction),验证器将其报告为错误。

Schema.org 的 GitHub 上已经讨论了这个问题:SearchAction 示例使用未定义的“查询输入”属性

所以你没有做错什么。除非 Schema.org 决定应该以不同的方式处理操作,否则验证器可能应该更新并允许-input-output后缀。

于 2014-11-26T13:04:33.897 回答
1

问题是query-input值(在您的情况下search_term_string)必须与输入字段名称匹配。

在你的情况下:

<input id="ajaxSearch" type="text" value="" name="search_term" itemprop="query-input">

一定是:

<input id="ajaxSearch" type="text" value="" name="search_term_string" itemprop="query-input">
于 2015-03-30T08:05:35.393 回答