اگر از افزونه رنک مث برای سئو سایت فروشگاهی ووکامرس خود استفاده میکنید احتمالا در گوگل سرچ کنسول با خطاهای اسکیما مواجه خواهید شد. البته توجه داشته باشید که این اخطار و خطا ها تقسیر افزونه رنک مث نیست. مشکل آن جاست که شما فیلد های مربوط به این اطلاعات را در صفحه محصولاتتان کامل نکردید که افزونه رنک مث آن اطلاعات را دریافت و به شکل اسکیما استاندارد به ربات گوگل نمایش دهد.
دو راه حل برای این مشکل وجود دارد. یا تمام محصولات را ویرایش کرده و اطلاعات لازم را فراهم کنید ( که گاهی اصلا فروشگاه شما یا محصول شما آن اطلاعات را ندارد ) یا با استفاده از کدی که در ادامه قرار دادیم اطلاعات اسکیما محصولات را اصلاح کنید تا مقادیر پیشفرض و ساختی به جای آنها به گوگل ارسال شوند و در نهایت خطا ها و اخطار های گوگل سرچ کنسول شما حل شوند.
این کد برای رفع خطا های زیر کاربرد دارد :
- Invalid ISO 4217 currency code (in “offers”)
- Date/time not in ISO 8601 format in field “priceValidUntil” (in “offers”)
- Missing field “priceValidUntil” (in “offers”)
- Missing field “priceCurrency” (in “offers”)
- Missing field “price” (in “offers”)
- Missing field “sku”
- No global identifier provided (e.g., gtin, brand)
- Missing field “brand”
خطا های زیر توسط این کد حل نمیشوند و روش حل آنها ارسال یک نظر ساختگی به صفحه محصولات است :
- Either “offers”, “review”, or “aggregateRating” should be specified
- Missing field “aggregateRating”
- Missing field “review”
برای رفع این مشکل میتوانید کد زیر را انتهای فایل فانکشن قالب ( functions.php ) خود قرار دهید:
/* * Fix RankMath Schema * Mahdi Jafarzadeh * https://www.wpwm.ir/ * */ add_filter( "rank_math/snippet/rich_snippet_product_entity", function( $entity ) { global $product; $id = get_the_ID(); if(get_woocommerce_currency() == 'IRT'){ $entity['offers']['price'] = $product->get_price()*'10'; $entity['offers']['priceCurrency'] = 'IRR'; } if (!empty($product->get_date_on_sale_to())) { $entity['offers']['priceValidUntil'] = date_i18n('Y-m-d', strtotime($product->get_date_on_sale_to())); } else { $entity['offers']['priceValidUntil'] = date('Y-12-31', time() + YEAR_IN_SECONDS); } $entity['sku'] = $id; $entity['mpn'] = $id; return $entity; });
اگر سوالی درباره عملکرد این کد دارید لطفا در قسمت نظرات بپرسید تا پاسخگوی شما باشیم.