Khi sử dụng plugin SEO Rank Math kết hợp cùng website bán hàng WooCommerce, phần Schema Rank Math cung cấp sẽ gặp lỗi khi sản phẩm chưa có đánh giá nào. Code Tốt chia sẻ đoạn code giúp khắc phục lỗi schema sản phẩm trên Rank Math này. Hãy cùng Code Tốt bảo trì web thường xuyên nhé!
Lỗi này được phát hiện khi bạn sử dụng Schema Rank Math nhưng các sản phẩm chưa có đánh giá nào cả. Bạn có thể quan sát trong Google Search Console.
Phải chỉ định “offers”, “reviews” hoặc “aggregateRating”
(Thông báo từ Google Search Console)
Fix Schema Rank Math trong trang sản phẩm
Với Schema sản phẩm (trong trang sản phẩm) được bạt trên Rank Math bản miễn phí. Bạn sử dụng đoạn code sau, thêm vào trong file functions.php
của giao diện đang kích hoạt.
/**
* Fix missing review on product schema (Rank Math)
*
* @author codetot
**/
function codetot_update_missing_product_schema( $entity ) {
$stampedDBData = get_post_meta(get_queried_object_id(), 'stamped_io_product_reviews_new', true);
if (isset($stampedDBData) && $stampedDBData['count'] > 0 ) {
$entity['aggregateRating']['@type'] = "AggregateRating";
$entity['aggregateRating']['ratingValue'] = $stampedDBData['rating'];
$entity['aggregateRating']['ratingCount'] = $stampedDBData['count'];
} else {
$entity['aggregateRating'] = [
'@type' => 'AggregateRating',
'ratingValue' => '5',
'ratingCount' => 0
];
}
return $entity;
}
add_filter( 'rank_math/snippet/rich_snippet_product_entity', 'codetot_update_missing_product_schema');
Fix Schema danh mục sản phẩm của Rank Math Pro
Với Schema danh mục sản phẩm được cung cấp bởi bản Rank Math Pro, bạn sử dụng đoạn mã sau cho vào file functions.php
của giao diện đang sử dụng.
add_filter('rank_math/json_ld', 'codetot_product_rich_snippet_schema', 100);
/**
* Fix RankMath missing `AggregateRating` on product category schema
*
* @author codetot
*/
function codetot_product_rich_snippet_schema( $data ) {
if ( !is_tax( 'product_cat' ) ) {
return $data;
}
if ( isset( $data['ProductsPage']) ) {
$product_schemas = array_map(function($product) {
if ( empty($product['aggregateRating'] ) ) {
$aggregateRating = [
'@type' => 'AggregateRating',
'ratingValue' => 5,
'ratingCount' => 1
];
$product['aggregateRating'] = $aggregateRating;
}
return $product;
}, $data['ProductsPage']['@graph'] );
$data['ProductsPage']['@graph'] = $product_schemas;
}
return $data;
}
Cách sửa file functions.php
trong giao diện
Bạn vào trang quản trị web, tìm menu Giao diện > Theme File Editor.
Ở giao diện hiện ra code, bạn tìm mục thứ hai ở cột bên phải (số 1: style.css, số 2: functions.php).
Nếu bạn vẫn chưa tự thực hiện được các thao tác trên thì hãy liên hệ dịch vụ chăm sóc và bảo trì website với phí bảo trì website ưu đãi để khắc phục lỗi một cách nhanh chóng nhé.