在woocommerce主题上,我在Google结构化数据上遇到了一些错误,例如:
我已经在mytheme / woocommerce / loop / ratings.php中找到了代码 在此文件中,只有此方法:
$product->get_average_rating();
问题是:是否有实现该功能的挂钩或动作? 我需要实现“ ItemReviewed”道具。
答案 0 :(得分: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 woocoommerce插件和插件文档来添加正确的架构来实现
https://developer.yoast.com/schema-documentation/woocommerce-seo/
答案 1 :(得分:0)
我遇到了同样的问题-评论未验证并抛出错误
通过修改/wp-content/themes/YOURTHEME/woocommerce/single-product/review.php进行修复
我添加了以下代码:
<p>Item Reviewed: <span itemprop="itemReviewed"><?php echo get_the_title(); ?></span></p>
这在结构化数据工具中生成了itemReviewed标记,并且我的评论已通过验证。
可能希望将其放在子主题中,以防万一:)
答案 2 :(得分: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 );