当前位置

Drupal网站添加ld+json结构化数据

James Qi 在 2018年9月11日 - 22:45 提交

  前段时间进行改造MediaWiki网站符合百度熊掌号验证的时候接触到ld+json数据,这是加到head里面的一种结构化数据,用来告诉搜索引擎一些关于页面更新时间等元素。

  后来在Google Search Console里面收到这样的报错提示“检测到了新的AMP问题:必需的结构化数据元素有误”,仔细查看是“所链接到的 AMP 版本有效,但收到了警告
It is eligible for some AMP-specific features in Google Search results, but is not fully compliant with AMP best practices. 了解详情”,这里可以看到AMP和非AMP结构化数据的文档和例子

  在MediaWiki中我们是安装了扩展程序Google Rich Cards,Drupal里面可以找到类似的第三方模块,但安装后发现比较复杂,还不如自己直接修改显示模板,把ld+json数据写入head里面,在模板文件中示范例子如下:

...
$pub_date_display = ...
$up_date_display = ...
$description = ...
$main_url = strtok("https://$server_name$request_uri",'?');
$site_name = variable_get('site_name', 'Drupal');
$json = '<script type="application/ld+json">{
    "@context": "http://schema.org",
    "mainEntityOfPage": "'.$main_url.'",
    "@type": "Article",
    "headline": "'.$title.'",
    "datePublished": "'.$pub_date_display.'",
    "dateModified": "'.$up_date_display.'",
    "description": "'.$description.'",
    "author": {
        "@type": "Person",
        "name": "James Qi"
    },
    "image": {
        "@type": "ImageObject",
        "url": "https://'.$server_name.'/logo.png",
        "width": "60",
        "height": "60"
    },
    "publisher": {
        "@type": "Organization",
        "name": "'.$site_name.'",
        "logo": {
            "@type": "ImageObject",
            "url": "https://'.$server_name.'/logo.png",
            "width": "60",
            "height": "60"
        }
    }
}</script>
';
$meta= "
<meta name=\"keywords\" content=\"$meta_keywords\" /> 
<meta name=\"description\" content=\"$meta_description\" /> 
";
if ($theme == 'ampsubtheme_example') {
$meta .= $json;
} else {
$meta .= "$xiongzhanghao\n$json";
}
$element = array(
  '#type' => 'markup',
  '#markup' => $meta,
);
drupal_add_html_head($element, 'meta');
...

  这样修改保存后可以使用Google提供的工具进行测试:结构化数据测试工具

自由标签:

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。