Skip Navigation

Home » وثائق WPML » مشاريع ذات صلة » WPML GraphQL – إضافة وظائف متعددة اللغات إلى مخطط WPGraphQL

WPML GraphQL – إضافة وظائف متعددة اللغات إلى مخطط WPGraphQL

يعمل WPML GraphQL على توسيع إمكانيات البرنامج الإضافي WPGraphQL، مما يجعله الحل الأمثل للمطورين الذين يتطلعون إلى إنشاء مواقع ويب متعددة اللغات باستخدام تقنيات الواجهة الأمامية. استمتع بسهولة الاستعلام عن المحتوى وتصفيته واسترداد البيانات والترجمات الخاصة باللغة مباشرةً من مخطط WPGraphQL.

دلائل الميزات

قم بتوسيع WPGraphQL بحقول إضافية ( اللغة ، رمز اللغة ، الترجمات ) لاسترداد بيانات محددة من ملحق WPML

تصفية المحتوى داخل مخطط Gatsby GraphQL

تصفية المشاركات والتصنيفات والتعليقات حسب اللغة

استرداد بيانات اللغة للكائنات والعقد

الاستعلام عن البيانات بناءً على جميع اللغات المثبتة أو لغات محددة

يعمل مع ACF، وACFML، وWPGraphQL للحقول المخصصة المتقدمة

على هذه الصفحة:

الإضافات والإعدادات المطلوبة

للبدء، قم بتثبيت وتفعيل المكونات الإضافية التالية:

  • ملحق WPML الأساسي والوظيفة الإضافية لترجمة النصوص
  • البرنامج المساعد WPGraphQL
  • البرنامج المساعد WPML GraphQL

إذا كنت تقوم بتشغيل موقع باستخدام ACF أو ACF Pro وتريد كشف الحقول متعددة اللغات من ملحق ACF إلى مخطط WPGraphQL، فقم بتثبيت وتنشيط:

استكشاف مخطط WPML GraphQL

يتكامل WPML GraphQL مع WPGraphQL ويضيف حقول ومرشحات جديدة إلى مخطط WPGraphQL.

بمجرد تثبيت المكونات الإضافية، يمكنك الانتقال إلى GraphQL → GraphQL IDE واستخدام Query Composer للاستعلام عن المحتوى وتصفيته بسهولة بلغات مختلفة. هذا يتضمن:

  • الحصول على معلومات حول لغة الكائنات التي تم الاستعلام عنها
  • الحصول على ترجمات لكائنات مثل أنواع المنشورات والتصنيفات والتعليقات.
  • تصفية الكائنات التي تم الاستعلام عنها حسب اللغة

على سبيل المثال، توضح الصورة أدناه كيف يمكنك استرداد قائمة بجميع المنشورات على موقع WordPress ، بما في ذلك رمز اللغة والارتباط الثابت وURI، بالإضافة إلى معلومات مماثلة لأي ترجمات لكل منشور.

استخدام حقول اللغة في Query Composer لاسترداد المشاركات بجميع اللغات

لتوضيح كيفية عمل WPML GraphQL ، قمنا بإعداد موقع يتم فيه تعيين اللغة الإنجليزية كلغة افتراضية، والإسبانية والإيطالية كلغتين ثانويتين. خلال صفحة التوثيق هذه، نستخدم موقع الاختبار هذا للاستعلام عن المنشورات وترجمات المنشورات التي أنشأها WPML .

الاستعلام عن معلومات اللغة والترجمة

يتيح لك WPML GraphQL تضمين حقول اللغة والترجمات في استعلامك . هذا يسمح لك بالعمل مع العقد والعناصر في GraphQL لاسترداد البيانات الخاصة باللغة والترجمات المرتبطة بها.

  • يمكنك إضافة حقل اللغة إلى الاستعلامات للإشارة إلى لغة أنواع المنشورات والتصنيفات والتعليقات. يوفر هذا الاستعلام معلومات لغوية شاملة، مثل:
    • رمز اللغة
    • عناوين URL لعلم الدولة
    • الاسم الأصلي للغة
    • الاسم المترجم للغة
    • عنوان URL للصفحة الرئيسية
  • يمكنك استخدام حقل رمز اللغة لتجميع رمز اللغة للمنشورات ومصطلحات التصنيف والتعليقات، دون طلب أي تفاصيل أخرى خاصة باللغة.
  • يمكنك استخدام حقل الترجمات لاسترداد ترجمات أنواع المنشورات ومصطلحات التصنيف.

أدناه، يمكنك رؤية مثال لاستعلام عن المشاركات التي تتضمن هذه الحقول.

WPML GraphQL query for posts using the language and translations fields
query Posts{
  posts(where: {language: "en"}) {
    nodes {
      slug
      uri
      language {
        code
      }
      translations {
        slug
        uri
        language {
          code
        }
      }
    }
  }
}

يؤدي تشغيل هذا الاستعلام إلى إرجاع معلومات اللغة والترجمة لكل مورد.

WPML GraphQL outcome of the query for posts using the language and translations fields
{
  "data": {
    "posts": {
      "nodes": [
        {
          "slug": "bye-world",
          "uri": "/bye-world/",
          "language": {
            "code": "en"
          },
          "translations": [
            {
              "slug": "adios-mundo",
              "uri": "/es/adios-mundo/",
              "language": {
                "code": "es"
              }
            },
            {
              "slug": "addio-mondo",
              "uri": "/it/addio-mondo/",
              "language": {
                "code": "it"
              }
            }
          ]
        },
        {
          "slug": "hello-world",
          "uri": "/hello-world/",
          "language": {
            "code": "en"
          },
          "translations": [
            {
              "slug": "hola-mundo",
              "uri": "/es/hola-mundo/",
              "language": {
                "code": "es"
              }
            },
            {
              "slug": "ciao-mondo",
              "uri": "/it/ciao-mondo/",
              "language": {
                "code": "it"
              }
            }
          ]
        }
      ]
    }
  }
}

تصفية اللغة

يأتي ملحق WPML GraphQL مزودًا بمرشح لغة ، والذي يتيح لك تحسين استفساراتك للحصول على بيانات اللغة الدقيقة التي تهمك.

يمكنك استخدام مرشح اللغة لتصفية المنشورات أو مصطلحات التصنيف أو التعليقات بناءً على لغة معينة. يمكنك طلب عقد لغة معينة عن طريق تضمين عامل تصفية اللغة في الاستعلام الخاص بك، ويمكنك أيضًا استرداد كافة العناصر، بغض النظر عن اللغة، باستخدام عامل تصفية اللغة مع تعيين القيمة على الكل.

فيما يلي مثال لاستعلام يقوم بتصفية المشاركات حسب لغتنا الثانوية، الإسبانية:

WPML GraphQL query using the language filter
query PostsES{
  posts(where: {language: "es"}) {
    nodes {
      slug
      uri
    }
  }
}

كما ترون، هذا الاستعلام يجلب كافة المشاركات باللغة الإسبانية.

WPML GraphQL outcome of the query using the language filter
{
  "data": {
    "posts": {
      "nodes": [
        {
          "slug": "adois-mundo",
          "uri": "/es/adios-mundo/"
        },
        {
          "slug": "hola-mundo",
          "uri": "/es/hola-mundo/"
        }
      ]
    }
  }
}

الاستعلام عن البيانات من اللغات المثبتة

يحدد WPML GraphQL استعلامين يتيحان لك الاستعلام عن البيانات من اللغات المثبتة على موقعك:

  • استعلام اللغات للحصول على جميع اللغات المسجلة مع البيانات المتعلقة بكل منها.
  • استعلام اللغة الافتراضية لتعيين اللغة كلغة افتراضية، بالإضافة إلى البيانات ذات الصلة بها.

قد يكون هذا مفيدًا إذا كنت تريد، على سبيل المثال، إنشاء محوّل لغة.

لنفترض أننا نريد الاستعلام عن البيانات لجميع اللغات المثبتة. ولهذا الغرض نقوم بتشغيل الاستعلام التالي:

WPML GraphQL query to get all registered languages
query Languages {
  languages {
    code
    country_flag_url
    default_locale
    native_name
    translated_name
    url
  }
}

الاستعلام أعلاه ينتج النتيجة التالية:

WPML GraphQL outcome of the query to get all registered languages
{
  "data": {
    "languages": [
      {
        "code": "en",
        "country_flag_url": "http://site.com/wp-content/plugins/sitepress-multilingual-cms-release/res/flags/en.svg",
        "default_locale": "en_US",
        "native_name": "English",
        "translated_name": "English",
        "url": "http://site.com"
      },
      {
        "code": "es",
        "country_flag_url": "http://site.com/wp-content/plugins/sitepress-multilingual-cms-release/res/flags/es.svg",
        "default_locale": "es_ES",
        "native_name": "Español",
        "translated_name": "Spanish",
        "url": "http://site.com/es/"
      },
      {
        "code": "it",
        "country_flag_url": "http://site.com/wp-content/plugins/sitepress-multilingual-cms-release/res/flags/it.svg",
        "default_locale": "it_IT",
        "native_name": "Italiano",
        "translated_name": "Italian",
        "url": "http://site.com/it/"
      }
    ]
  }
}

استخدام WPML GraphQL مع Gatsby وACF

يتيح لك إطار عمل Gatsby جمع البيانات من مصادر خلفية مختلفة، بما في ذلك مواقع WordPress .

إذا كان موقع WordPress الخاص بك يستخدم WP GraphQL، فيمكنك تقديم بياناته إلى موقع Gatsby. مع تثبيت WPML GraphQL ، يمكنك تقديم البيانات بلغات مختلفة وحتى استرداد معلومات اللغة.

لتوفير وظائف إضافية، يحتوي WP GraphQL على وظيفة إضافية للحقول المخصصة المتقدمة (ACF). باستخدام هذه الوظيفة الإضافية مع ملحق ACF Multilingual من WPML ، يمكنك خدمة كل من البيانات الأساسية والبيانات الميدانية المخصصة بناءً على متطلبات لغة محددة.

لنأخذ مثالاً على السيناريو: لديك تثبيت Gatsby مع الحزمة الإضافية gatsby-source-graphql ، والتي تسترد البيانات من الواجهة الخلفية لـ WordPress . في هذه الواجهة الخلفية WordPress :

  1. لقد قمت بتثبيت WPML مع تعيين اللغة الإسبانية كلغة ثانوية.
  2. لقد قمت بتثبيت ACF وأضفت مجموعة حقول ( حقول بريدية ثابتة) تتضمن حقل نص ( عنوان فرعي ثابت ) للمشاركات.
  3. لقد ملأت بعض البيانات.

باستخدام استعلام GraphQL بسيط، يمكنك جمع هذه البيانات.

في مثال الاستعلام أدناه، نقوم باسترداد المنشورات من الواجهة الخلفية لـ WordPress حيث تم ضبط اللغة على اللغة الإنجليزية. بالنسبة لكل مشاركة، يمكننا الوصول إلى عنوانها ورمز اللغة وبيانات حقل ACF، مثل العنوان الفرعي. بالإضافة إلى ذلك، يمكننا استرداد ترجمات المنشور، بما في ذلك عناوينها ورموز اللغة والبيانات الميدانية لـ ACF.

WPML GraphQL example query for language-specific information and ACF field data
export const doQuery = graphql`
  {
    wordpress {
      posts(where: {language: "en"}) {
        nodes {
          title
          language {
            code
          }
          postfields{
            subtitle
          }
          translations {
            title
            language {
              code
            }
            postfields{
              subtitle
            }
          }
        }
      }
    }
  }
`;

المشكلات المعروفة

WPML يعمل من دون مشكلات مع هذه الإضافة، ولكن في بعض الأحيان قد تحدث مشكلات بسيطة نقوم بحلها. هذا متوقع، لأن كلتا الإضافتين تخضعان للتحديث المستمر.

المشكلات غير المحلولة حتى الآن:

يمكنك أيضًا البحث في جميع المشكلات المعروفة، بما في ذلك المشكلات التي تم حلها سابقًا لهذه الإضافة.

الحصول على الدعم

إذا كنت بحاجة إلى مساعدة في استخدام WPML GraphQL مع WPGraphQL، فيرجى التوجه إلى منتدى الدعم الخاص بنا.

تم تحديثه
يناير 18, 2024