首页 > 解决方案 > 如何在 WooCommerce 中的产品结构化数据 (Schema.org) 中添加产品图像和描述

问题描述

我正在使用它为每个产品的架构添加一个自定义字段

add_filter( 'woocommerce_structured_data_product', function( $markup, $product ) {
    if( is_product() ) {
        $markup['brand'] = get_post_meta(get_the_ID(), 'brand', TRUE);
    }

我还需要将产品的图片 url 和描述添加到架构中,我该如何实现呢?

标签: wordpresswoocommerceschemastructured-data

解决方案


woocommerce_structured_data_product钩子已经在产品页面上运行,因此您不需要is_product()检查。

文档中所述,它在woocommerce_single_product_summary钩子内执行。

您可以像这样覆盖结构化数据:

// overwrites structured data
add_filter( 'woocommerce_structured_data_product',  'set_structured_data', 99, 2 );
function set_structured_data( $markup, $product ) {    
    $markup['brand'] = get_post_meta( $product->get_id(), 'brand', true );
    $markup['image'] = wp_get_attachment_url( $product->get_image_id() );
    $markup['description'] = wp_strip_all_tags( $product->get_short_description() ? $product->get_short_description() : $product->get_description() );
    return $markup;
}

该代码已经过测试并且可以工作。将它添加到您的活动主题的functions.php。

在产品页面上,找到<script type="application/ld+json">元素,它应该看起来像这样:

在此处输入图像描述

然后检查brand,imagedescription字段是否有价值。

您可以在此处找到要添加到产品结构化数据的完整字段列表:

如果要检查结构化数据的有效性, 可以在Rich Results Test - Google Search Console页面的代码部分输入整个脚本(而不是产品页面 url)

一些有用的链接:

相关答案:


推荐阅读