سئو تکنیکال (Technical SEO) Schema Generator Hook پلتفرم: woocommerce پیشرفته (Hard) سطح ریسک: متوسط (Medium Risk)

اسکیمای ساختاریافته محصول ووکامرس (Product Schema JSON-LD)

تست‌شده و بازبینی‌شده در 1405/06/29 ۶۷۴ بار کپی ۲۱۵ مشاهده
پاسخ سریع و خلاصه کاربردی (Quick Answer)

با خواندن شیء محصول توسط `wc_get_product` اسکیمای کامل قیمت و موجودی را با فرمت JSON-LD تزریق کنید.

مشخصات فنی و شناسنامه کد (Code Information)

بازبینی: 1405/06/29
پلتفرم اجرایی (Platform) woocommerce
نوع کد (Code Type) Schema Generator Hook
محل قرارگیری فایل (Location) functions.php
سطح دشواری (Difficulty) پیشرفته (Hard)
سطح ریسک (Risk Level) متوسط (Medium Risk)
نیاز به بکاپ اولیه؟ بله، حتماً بکاپ بگیرید
سازگاری با وردپرس تمامی نسخه‌ها
سازگاری با ووکامرس و HPOS سازگار کامل با HPOS
هشدار ایمنی: این تغییر مستقیماً فایل‌های حساس سرور یا دیتابیس را ویرایش می‌کند. حتماً پیش از ذخیره کد از وب‌سایت یا فایل مورد نظر فایل پشتیبان (Backup) تهیه کنید.
|
<?php
/**
 * تولید اسکیمای جامع و اختصاصی محصول ووکامرس (Product Schema) سازگار با HPOS
 */
function bisco_output_product_schema() {
    if ( ! function_exists( 'is_product' ) || ! is_product() ) {
        return;
    }

    $product = wc_get_product( get_the_ID() );
    if ( ! $product ) {
        return;
    }

    $image_id  = $product->get_image_id();
    $image_url = $image_id ? wp_get_attachment_url( $image_id ) : home_url( '/placeholder.jpg' );

    $schema = array(
        '@context'    => 'https://schema.org',
        '@type'       => 'Product',
        'name'        => esc_html( $product->get_name() ),
        'image'       => array( esc_url( $image_url ) ),
        'description' => esc_html( wp_strip_all_tags( $product->get_short_description() ?: $product->get_description() ) ),
        'sku'         => esc_html( $product->get_sku() ?: 'SKU-' . $product->get_id() ),
        'offers'      => array(
            '@type'           => 'Offer',
            'url'             => esc_url( get_permalink( $product->get_id() ) ),
            'priceCurrency'   => get_woocommerce_currency(),
            'price'           => $product->get_price() ?: '0',
            'priceValidUntil' => gmdate( 'Y-12-31', strtotime( '+1 year' ) ),
            'availability'    => $product->is_in_stock() ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
            'itemCondition'   => 'https://schema.org/NewCondition',
        ),
    );

    // افزودن امتیاز خریداران در صورت وجود
    if ( $product->get_rating_count() > 0 ) {
        $schema['aggregateRating'] = array(
            '@type'       => 'AggregateRating',
            'ratingValue' => $product->get_average_rating(),
            'reviewCount' => $product->get_rating_count(),
        );
    }

    echo '<script type="application/ld+json">' . wp_json_encode( $schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) . '</script>' . "
";
}
add_action( 'wp_head', 'bisco_output_product_schema', 5 );

کد را کجا قرار دهیم؟ (Placement Guide)

کد را در functions.php ذخیره کنید.

مسیر فایل: functions.php

این کد چگونه کار می‌کند؟ (How it Works)

از متدهای شیء بومی ووکامرس (مانند get_price, is_in_stock) استفاده کرده و داده‌های دقیق تجاری را به موتورهای جستجو تحویل می‌دهد.

چه زمانی از این کد استفاده کنیم؟ (Use Cases)

در تمام صفحات محصول تکی ووکامرس برای فعال کردن نتایج ستاره‌دار، قیمت و برچسب موجودی در گوگل.

چه زمانی نباید از این کد استفاده کنیم؟ (Anti-patterns)

در صفحات دسته‌بندی یا تسویه حساب.

پیش‌نیازهای اجرا

ووکامرس ۳.۰ به بالا با فعال بودن قیمت و وضعیت انبار.

نحوه تست و اطمینان از عملکرد

صفحه یک محصول را در Google Rich Results Test بررسی کنید؛ وضعیت Product، Price و InStock تایید خواهند شد.

نحوه بازگردانی سریع (Rollback)

کد را از functions.php بردارید.

خطاهای رایج و راه‌حل رفع

خالی بودن SKU یا Price که گوگل برای آنها هشدار نمایش می‌دهد (کد ما در صورت خالی بودن مقادیر پیش‌فرض معتبر جایگزین می‌کند).

ملاحظات و نکات امنیتی

پاکسازی داده‌های خروجی و عدم امکان تزریق کد.

تاثیر بر سرعت و پرفورمنس

کاملاً بهینه و استفاده از کش داخلی ووکامرس برای خواندن شیء محصول.

پرسش‌های متداول پیرامون این کد (FAQ)

گوگل از کدهای استاندارد ISO مثل IRR برای ریال پشتیبانی می‌کند که ووکامرس به درستی آن را ارسال می‌نماید.
منابع و مستندات رسمی بررسی‌شده (Official Sources):

سبد خرید شما

0 افزونه

سبد خرید شما خالی است

هنوز محصولی را به سبد خرید اضافه نکرده‌اید. می‌توانید از افزونه‌های اختصاصی ما دیدن فرمایید.

مشاهده فروشگاه افزونه‌ها

ثبت درخواست مشاوره

با تکمیل فرم زیر، کارشناسان فنی بیسکو وب در سریع‌ترین زمان ممکن با شما تماس می‌گیرند.

مشاور
پشتیبانی و مشاوره تخصصی
پاسخگویی سریع کارشناسان
09903336117
' . \"\n\";\n}\nadd_action( 'wp_head', 'bisco_output_product_schema', 5 );"}