不带插件的博客发布模式和结构化数据

时间:2019-04-17 作者:Benjamin Franklin

我想添加blogposting模式标记,这样每个新帖子都会自动针对丰富的数据进行优化。网络上的一些代码很凌乱,每篇文章都需要更新,而且插件不是最好的选择,因为这是自定义主题,我们正在努力将插件要求保持在最低限度。是否有一个代码,我可以添加到单一的。php文件,这样每个页面都有适当的结构化数据,而无需插件,也无需在管理或每篇文章中进行额外更改。谢谢

1 个回复
SO网友:Faye

我认为您要走的路线是JSON-LD。

Here\'s an excellent guide for how to go about that 来自CSS技巧。

概述:

识别schema 你需要为你的帖子

使用函数。php(或者一个包含的.php文件,但是您可以组织站点的其他功能,我通常会创建自己的.php文件)。

使用站点中的变量和数组中的帖子定义json值(指南的步骤5)。最棒的是,所有ACF和wordpress都可以通过这种方式为您提供。您可以调用摘录、内容、标题等。

在帖子页面的开头运行json脚本。

指南中的示例:

add_action(\'wp_head\', function() {
  $schema = array(
    // Tell search engines that this is structured data
    \'@context\'  => "http://schema.org",
    // Tell search engines the content type it is looking at 
    \'@type\'     => get_field(\'schema_type\', \'options\'),
    // Provide search engines with the site name and address 
    \'name\'      => get_bloginfo(\'name\'),
    \'url\'       => get_home_url(),
    // Provide the company address
    \'telephone\' => \'+49\' . get_field(\'company_phone\', \'options\'), //needs country code
    \'address\'   => array(
      \'@type\'           => \'PostalAddress\',
      \'streetAddress\'   => get_field(\'address_street\', \'option\'),
      \'postalCode\'      => get_field(\'address_postal\', \'option\'),
      \'addressLocality\' => get_field(\'address_locality\', \'option\'),
      \'addressRegion\'   => get_field(\'address_region\', \'option\'),
      \'addressCountry\'  => get_field(\'address_country\', \'option\')
    )
  );
}
指南示例:

echo \'<script type="application/ld+json">\' . json_encode($schema) . \'</script>\';
这是我找到的最好的方法,因为您可以使用wordpress中模板中可用的所有内容,包括ACF,并且可以添加条件在特定页面上运行脚本。

相关推荐

返回LOAD_POSTS_BY_AJAX中的条件类别

我创建了一个返回最后三篇文章的短代码,并设置了一个属性,允许我根据所处的页面选择类别。function return_actu_home($atts) { ob_start(); extract( shortcode_atts( array( \'category\' => \'\' ), $atts ) ); $args = array( \'post_type\' =>