微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WooCommerce:将品牌和 gtin 添加到 Yoast 中的产品架构标记

如何解决WooCommerce:将品牌和 gtin 添加到 Yoast 中的产品架构标记

我想在 WooCommerce 中为我的产品标记添加品牌和 gtin。 目前 Yoast SEO 插件已经添加了很多标记。 但它只能选择添加具有产品属性的品牌。就我而言,品牌基于自定义字段。此外,gtin 位于不同的领域,不能与 Yoast 一起使用。

我在他们的 docs 中发现了一个代码片段,它允许将自定义数据添加标记中:

add_filter('wpSEO_schema_webpage','example_change_webpage');

/**
 * Changes @type of Webpage Schema data.
 *
 * @param array $data Schema.org Webpage data array.
 *
 * @return array Schema.org Webpage data array.
 */
function example_change_webpage( $data ) {
    if ( ! is_page( 'about' ) ) {
        return $data;
    }

    $data['@type'] = 'AboutPage';

    return $data;
}

但这不适用于产品,我不知道如何改变它。

我还找到了 schmea 片产品的示例:

{
      "@context": "https://schema.org","@graph": [
          {
              "@type": "Product","@id": "https://www.example.com/#/schema/product/abc123","name": "Example Product","image": {
                  "@id": "https://www.example.com/#/schema/image/abc123"
              }
          }
      ]
  }

我可以在自定义函数中使用它,并将其作为 javascript 添加到头部。像这样:

add_action( 'wp_head',function() {

    if ( is_product() ): 
    
    ?>
    
    <script type="application/ld+json">{
          "@context": "https://schema.org","@graph": [
              {
                  "@type": "Product","@id": "#product","brand": {
                      "@id": "https://www.example.com/#/schema/organization/abc123"
                  },"sku": "abc123",}
          ]
      }</script>
    
<?PHP
endif;
 },99 );

但现在我有两种不同的产品架构标记

难道没有办法向 Yoast 的现有标记添加内容吗?

解决方法

我想我找到了解决方案:

add_filter( 'wpseo_schema_product','custom_set_extra_schema' );
function custom_set_extra_schema( $data ) {
    global $product;
    
    $gtin        = get_post_meta( $product->get_id(),'_custom_gtin',true );
    $brand_name  = get_post_meta( $product->get_id(),'_custom_brand_name',true );

    $data['brand'] = $brand_name;
    $data['gtin13'] = $gtin;
        
    return $data;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。