← بازگشت به صفحه اصلی

مقدمه

این سند توضیحاتی درباره پیکربندی‌ها و سفارشی‌سازی‌های انجام شده برای افزونه Rank Math SEO در قالب XPay ارائه می‌دهد. تمامی تنظیمات مربوط به Rank Math در یک Controller مجزا به نام RankMathController مدیریت می‌شود.


ساختار و معماری

موقعیت فایل

wp-content/themes/xpay_main_theme/app/Controllers/RankMathController.php

ثبت Controller

در فایل functions.php:

use XPayMain\Controllers\RankMathController;

// Register the Rank Math controller (manages all Rank Math SEO customizations)
RankMathController::register();

قابلیت‌های پیاده‌سازی شده

1. تغییر Schema Breadcrumb

هدف: تغییر خودکار نام “کوین‌ها” به “خرید ارز دیجیتال” در Schema Breadcrumb

توضیحات

متد مسئول

public function modifySchema($data, $jsonld)

فیلتر استفاده شده

add_filter('rank_math/json_ld', [$this, 'modifySchema'], 99, 2);

مثال Schema قبل از تغییر

{
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": "2",
      "item": {
        "@id": "https://xpay.co/coin/",
        "name": "کوین‌ها"
      }
    }
  ]
}

مثال Schema بعد از تغییر

{
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": "2",
      "item": {
        "@id": "https://xpay.co/coin/",
        "name": "خرید ارز دیجیتال"
      }
    }
  ]
}

2. تنظیم Canonical URL

هدف: اصلاح canonical URL برای صفحات صفحه‌بندی شده نویسنده

توضیحات

متد مسئول

public function customizeCanonicalUrl($canonical)

فیلتر استفاده شده

add_filter('rank_math/canonical_url', [$this, 'customizeCanonicalUrl']);

مثال


3. تنظیم Robots Meta Tag

هدف: مدیریت نمایه‌سازی صفحات خاص در موتورهای جستجو

توضیحات

صفحات زیر از نمایه‌سازی موتورهای جستجو خارج می‌شوند:

متد مسئول

public function customizeRobotsMeta($robots)

فیلتر استفاده شده

add_filter('rank_math/frontend/robots', [$this, 'customizeRobotsMeta']);

خروجی

<meta name="robots" content="noindex, nofollow">

4. تبدیل H3 به Span در FAQ Block

هدف: جلوگیری از ایجاد تگ‌های H3 متعدد در بلوک‌های FAQ

توضیحات

متدهای مسئول

public function convertFaqHeadings($block_content, $block)
public function convertFaqHeadingsInContent($content)

فیلترهای استفاده شده

add_filter('render_block', [$this, 'convertFaqHeadings'], 10, 2);
add_filter('the_content', [$this, 'convertFaqHeadingsInContent'], 20);

مثال تبدیل

قبل:

<h3 class="rank-math-question">سوال چیست؟</h3>

بعد:

<span class="rank-math-question">سوال چیست؟</span>

نحوه استفاده

فعال‌سازی تنظیمات

تنظیمات به صورت خودکار با فعال بودن قالب اعمال می‌شوند. نیازی به تنظیمات دستی نیست.

غیرفعال کردن موقت یک قابلیت

اگر نیاز به غیرفعال کردن موقت یک قابلیت دارید، می‌توانید خط مربوط به آن فیلتر را در متد init() کامنت کنید:

private function init()
{
    // Schema modifications
    add_filter('rank_math/json_ld', [$this, 'modifySchema'], 99, 2);

    // Canonical URL customizations
    // add_filter('rank_math/canonical_url', [$this, 'customizeCanonicalUrl']);

    // ... rest of filters
}

تغییرات آینده

اضافه کردن فیلتر جدید

برای اضافه کردن یک فیلتر یا hook جدید Rank Math:

  1. متد عمومی جدید در کلاس ایجاد کنید:
    public function myNewCustomization($param)
    {
     // Your code here
     return $param;
    }
    
  2. فیلتر را در متد init() ثبت کنید:
    private function init()
    {
     // ... existing filters
     add_filter('rank_math/filter_name', [$this, 'myNewCustomization']);
    }
    

تغییر اولویت فیلتر

اولویت فیلترها را می‌توانید از طریق پارامتر سوم تغییر دهید:

add_filter('rank_math/json_ld', [$this, 'modifySchema'], 99, 2);
//                                                          ^^ اولویت (عدد بالاتر = اجرای دیرتر)

نکات مهم برای تیم SEO

✅ آنچه تیم SEO می‌تواند تغییر دهد:

⚠️ آنچه به صورت خودکار اعمال می‌شود:


پشتیبانی و سوالات

برای سوالات فنی و مشکلات مربوط به RankMathController با تیم توسعه تماس بگیرید.

اطلاعات فنی


تاریخچه تغییرات

نسخه 1.0.0 (نوامبر 2025)


منابع مفید