
برای حل مشکل خطای اسکیما محصولات ووکامرس با استفاده از افزونه RankMath، میتوانید مراحل زیر را دنبال کنید. این کد به شما کمک میکند تا اسکیماهای محصولات خود را به درستی اجرا کنید و از مشکلات و خطاهای احتمالی جلوگیری کنید. مطمئن شوید که افزونه RankMath بر روی سایت شما نصب و فعال شده است.
- ابتدا افزونه RankMath را نصب و فعال کنید.
- به تنظیمات RankMath بروید و وارد بخش “SEO Titles & Meta” شوید و تنظیمات مربوط به محصولات را بررسی کنید.
- حالا به بخش “Schema Templates” در RankMath بروید و مطمئن شوید که قالب اسکیما برای محصولات به درستی تنظیم شده است.
- اگر هنوز مشکل حل نشده است، میتوانید به صورت دستی اسکیماها را اضافه و تنظیم کنید. برای این کار، کد زیر را به فایل
functions.php
قالب فعال خود اضافه کنید:
// افزودن اسکیما به محصولات ووکامرس به صورت دستی
add_action('woocommerce_single_product_summary', 'add_custom_product_schema', ۸);
function add_custom_product_schema() {
global $product;
if (!$product || !is_product()) {
return;
}
$schema = array(
'@context' => 'https://schema.org/',
'@type' => 'Product',
'name' => $product->get_name(),
'image' => wp_get_attachment_url($product->get_image_id()),
'description' => wp_strip_all_tags($product->get_description()),
'sku' => $product->get_sku(),
'mpn' => $product->get_id(),
'brand' => array(
'@type' => 'Brand',
'name' => 'نام برند خود را اینجا وارد کنید' // درصورت وجود، نام برند را اضافه کنید
),
'offers' => array(
'@type' => 'Offer',
'priceCurrency' => get_woocommerce_currency(),
'price' => $product->get_price(),
'availability' => $product->is_in_stock() ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
'url' => get_permalink($product->get_id())
)
);
echo '<script type="application/ld+json">' . wp_json_encode($schema) . '</script>';
}
این کد به صورت دستی دادههای اسکیما را با استفاده از ویژگیهای محصول در صفحه محصول وارد میکند. مطمئن شوید که نام برند خود را در مکان مشخص شده وارد کنید.
- در نهایت، مطمئن شوید که هیچ افزونه دیگری که اسکیماها را مدیریت میکند و ممکن است تداخل ایجاد کند، فعال نیست.
اگر این راهحلها مشکل شما را حل نکرد، ممکن است بخواهید با تیم پشتیبانی RankMath تماس بگیرید یا بررسی کنید که آیا بهروزرسانی جدیدی برای افزونه وجود دارد که خطاها را برطرف کرده باشد.
همچنین می توانید از روش های زیر هم استفاده کنید :
کد زیر را انتهای فایل فانکشن قالب ( 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; });
حل مشکل SKU, mpn و Brand
کد زیر را به Function.php سایت خود اضافه کنید.
/* * Rich Snippet Data * Add missing data not handled by WooCommerce yet – Webjame.Com */ function custom_woocommerce_structured_data_product ($data) { global $product; $data[‘brand’] = $product->get_attribute(‘brand’) ?? null; $data[‘mpn’] = $product->get_sku() ?? null; return $data; } add_filter( ‘woocommerce_structured_data_product’, ‘custom_woocommerce_structured_data_product’ );
بعد از آن هنگام وارد کردن محصولات باید از قسمت ویژگیها نام برند محصول را وارد کنید و از بخش انبار “شناسه محصول” را با یک عدد دلخواه پرکنید.
رفع خطا Thing در بخش اسکیما Brand محصولات Woocommerce
اخیراً مشکلی بوجود آمده که گوگل بخش برند Brand را در اسکیما محصولات تغییر داده و شما باید type اسکیما Brand را از Thing به Brand تغییر دهید. برای اینکار کافیست کد زیر را در فایل فانکشن قالب خود قرار دهید.
<?php
/**
* Webjame.Com : Fixed Product brand schema
*
* https://webjame.com/fixed-product-schema-for-woocommerce/
*/
function wbj_woocommerce_structured_data_product_offer( $markup, $product ) {
$markup[ 'brand' ] = array(
'@type' => 'brand',
'name' => wc_get_product()->get_attribute('pa_brand'),
);
return $markup;
}
add_filter( 'woocommerce_structured_data_product', 'wbj_woocommerce_structured_data_product_offer', 10, 2 );
توجه داشته باشید، اگر از کدی که برای حل مشکل SKU, mpn و Brand قرار دادیم استفاده میکنید، کد را به شکل زیر تغییر دهید :
/*
* Rich Snippet Data
* Add missing data not handled by WooCommerce yet - Webjame.Com
*/
function custom_woocommerce_structured_data_product ($data) {
global $product;
$data['mpn'] = $product->get_sku() ?? null;
return $data;
}
add_filter( 'woocommerce_structured_data_product', 'custom_woocommerce_structured_data_product' );
تبریک می گوییم حل خطا اسکیما محصولات به پایان رسید با مقالات بعدی ما را همراهی کنید!