0

在我的 woocommerce 主题中,我在 Google 结构化数据上遇到了一些错误,例如:

在此处输入图像描述

我在 mytheme/woocommerce/loop/ratings.php 中找到了代码在这个文件中只有这个方法:

$product->get_average_rating();

问题是:有实现这个功能的钩子或动作吗?我需要实现“ItemReviewed”道具。

4

3 回答 3

0

定义 woocommerce_structured_data_review 回调

function filter_woocommerce_structured_data_review( $markup, $comment ) { 
    global $product;

    $markup['itemReviewed']['sku']  = $product->get_sku();
    $markup['itemReviewed']['brand']  = $product->get_attribute( 'brand' ) ?? null;
    $markup['itemReviewed']['description']  = wp_strip_all_tags( do_shortcode( $product->get_short_description() ? $product->get_short_description() : $product->get_description() ) );
    $markup['itemReviewed']['image']  = wp_get_attachment_url( $product->get_image_id() );
    $markup['itemReviewed']['isbn']  = $product->get_attribute( 'isbn' ) ?? null;
    $markup['itemReviewed']['AggregateRating']  = $product->get_average_rating();

    return $markup; 
}; 

Woocommerce 评论过滤器

 add_filter( 'woocommerce_structured_data_review',
   'filter_woocommerce_structured_data_review', 10, 2 ); 
于 2019-11-15T17:44:09.090 回答
0

我有同样的问题 - 评论没有验证并抛出错误

设法通过编辑 /wp-content/themes/YOURTHEME/woocommerce/single-product/review.php 来修复它

我添加了以下代码:

<p>Item Reviewed: <span itemprop="itemReviewed"><?php echo get_the_title(); ?></span></p>

这在结构化数据工具中生成了 itemReviewed 标记,并且我的评论得到了验证。

可能想把它放在子主题中以防万一:)

于 2019-06-17T21:43:17.303 回答
0

这取决于您的产品架构,选项一是删除错误但不会推送评论是

/**
 * Remove the generated product schema markup from Product Category and Shop pages.
 */
function wc_remove_product_schema() {
    remove_action( 'woocommerce_shop_loop', array( WC()->structured_data, 'generate_product_data' ), 10, 0 );
}
add_action( 'woocommerce_init', 'wc_remove_product_schema' );

如果您想汇总您的评论,如果您使用 yoast 和 woocommerce,则需要更新您的架构,这可以通过查看特定的 yoast woocommerce 插件和插件文档来添加正确的架构来实现

https://developer.yoast.com/schema-documentation/woocommerce-seo/

于 2019-06-14T11:24:16.630 回答