如何在 WooCommerce 中的产品结构化数据 (Schema.org) 中添加产品图片和描述

How to add product image and description in product structured data (Schema.org) in WooCommerce

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

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

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

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

documentation 中所述,它在 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"> 元素,它应该如下所示:

然后检查 brandimagedescription 字段是否有值。

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

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

一些有用的链接:

相关回答: