تخطي إلى المحتوى تخطي إلى الشريط الجانبي

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

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

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

الميزات الرئيسية

صفِّ المحتوى حسب اللغة، بما في ذلك المقالات والتصنيفات والتعليقات والقوائم وعناصر القوائم

وسِّع WPGraphQL بحقول اللغة لاسترجاع بيانات محددة من إضافة WPML

الاستعلام عن البيانات عبر جميع اللغات المثبتة أو التركيز على لغات معينة

البرامج المساعدة المطلوبة

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

  • WPGraphQL
  • WPML
  • WPML String Translation
  • WPML GraphQL

لتضمين حقول تعدد اللغات من إضافة ACF في مخطط WPGraphQL، ثبّت أيضًا:

ماذا يمكنك أن تفعل باستخدام WPML GraphQL؟

يتكامل WPML GraphQL مع WPGraphQL ليتيح لك الاستعلام عن المحتوى متعدد اللغات الذي تم إنشاؤه باستخدام WPML.

من GraphQL → GraphQL IDE، يمكنك استخدام مُلحِّن الاستعلام من أجل:

  • احصل على معلومات اللغة لأي محتوى تستعلم عنه
  • الوصول إلى ترجمات المقالات والتصنيفات والتعليقات
  • تصفية استفساراتك حسب اللغة
  • الاستعلام عن مقالات محددة عبر اللغات باستخدام المعرّف أو الجزء المعرِّف للعنوان

على سبيل المثال، كما تُظهر الصورة أدناه، يمكنك بسهولة عرض قائمة بجميع المقالات على موقعك، مع رموز اللغات والأجزاء المعرِّفة للعناوين وURI والتفاصيل الخاصة بترجماتها.

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

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

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

باستخدام WPML GraphQL، يمكنك استخدام الحقلين language و translation في استعلاماتك:

  • يتيح لك الحقل language استرجاع تفاصيل مثل رمز اللغة ورابط URL لعلم الدولة والاسم الأصلي والاسم المترجم ورابط URL للصفحة الرئيسية لأنواع المقالات والتصنيفات والقوائم وعناصر القوائم والتعليقات.
  • يجلب الحقل languageCode رمز اللغة للمقالات ومصطلحات التصنيف والقوائم وعناصر القوائم والتعليقات دون تفاصيل إضافية عن اللغة.
  • يسترجع الحقل translations الترجمات لأنواع المقالات ومصطلحات التصنيف.

عند الاستعلام عن التعليقات، يطابق الحقلان language و languageCode لغة المقال الذي تنتمي إليه.

إليك مثالًا على استعلام يسترجع المقالات مع التفاصيل المرتبطة بها، بما في ذلك الجزء المعرِّف للعنوان وURI ورمز اللغة والتصنيفات وأي ترجمات موجودة:

query Posts{
  posts(where: {language: "en"}) {
  nodes {
  slug
  uri
  language {
  code
  }
  categories {
  nodes {
  name
  }
  }
  translations {
  slug
  uri
  language {
  code
  }
  categories {
  nodes {
  name
  }
  }
  }
  }
  }
}

يُرجع تشغيل هذا الاستعلام معلومات اللغة والترجمة لكل مقالة، إلى جانب العناصر المتصلة مثل التصنيفات. وتتبع الاتصالات تلقائيًا لغة العنصر ذي المستوى الأعلى (المقالات في هذه الحالة):

{
  "data": {
  "posts": {
  "nodes": [
  {
  "slug": "bye-world",
  "uri": "/2023/05/18/bye-world/",
  "language": {
  "code": "en"
  },
  "categories": {
  "nodes": [
  {
  "name": "End of the day"
  },
  {
  "name": "Greetings"
  }
  ]
  },
  "translations": [
  {
  "slug": "adios-mundo",
  "uri": "/es/2023/05/18/adios-mundo/",
  "language": {
  "code": "es"
  },
  "categories": {
  "nodes": [
  {
  "name": "Fin del día"
  },
  {
  "name": "Saludos"
  }
  ]
  }
  },
  {
  "slug": "tchau-mundo",
  "uri": "/pt-pt/2023/05/18/tchau-mundo/",
  "language": {
  "code": "pt-pt"
  },
  "categories": {
  "nodes": [
  {
  "name": "Fim do dia"
  },
  {
  "name": "Saudações"
  }
  ]
  }
  }
  ]
  },
  {
  "slug": "hello-world",
  "uri": "/2018/07/05/hello-world/",
  "language": {
  "code": "en"
  },
  "categories": {
  "nodes": [
  {
  "name": "Greetings"
  },
  {
  "name": "Start of the day"
  }
  ]
  },
  "translations": [
  {
  "slug": "hola-mundo",
  "uri": "/es/2018/07/05/hola-mundo/",
  "language": {
  "code": "es"
  },
  "categories": {
  "nodes": [
  {
  "name": "Inicio del día"
  },
  {
  "name": "Saludos"
  }
  ]
  }
  },
  {
  "slug": "ola-mundo",
  "uri": "/pt-pt/2018/07/05/ola-mundo/",
  "language": {
  "code": "pt-pt"
  },
  "categories": {
  "nodes": [
  {
  "name": "Começo do dia"
  },
  {
  "name": "Saudações"
  }
  ]
  }
  }
  ]
  }
  ]
  }
  }
}

تصفية اللغة

يتيح لك WPML GraphQL استخدام عامل التصفية language من أجل:

  • تصفية المقالات أو مصطلحات التصنيف أو القوائم أو عناصر القوائم أو التعليقات حسب لغة محددة
  • استرجاع المحتوى بلغة معيّنة عبر ضبط عامل التصفية وفقًا لذلك
  • الحصول على كل المحتوى بغض النظر عن اللغة عبر ضبط قيمة عامل التصفية على all

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

إليك مثالًا على استعلام يسترجع المقالات باللغة الإسبانية، بما في ذلك الأجزاء المعرِّفة للعناوين وURI والتصنيفات المتصلة:

query PostsES{
  posts(where: {language: "es"}) {
  nodes {
  slug
  uri
  categories {
  nodes {
  name
  }
  }
  }
  }
}

إليك ما يُظهره الاستعلام:

{
  "data": {
  "posts": {
  "nodes": [
  {
  "slug": "adios-mundo",
  "uri": "/es/2023/05/18/adios-mundo/",
  "categories": {
  "nodes": [
  {
  "name": "Fin del día"
  },
  {
  "name": "Saludos"
  }
  ]
  }
  },
  {
  "slug": "hola-mundo",
  "uri": "/es/2018/07/05/hola-mundo/",
  "categories": {
  "nodes": [
  {
  "name": "Inicio del día"
  },
  {
  "name": "Saludos"
  }
  ]
  }
  }
  ]
  }
  }
}

الاستعلام عن مقالات محددة عبر اللغات

باستخدام WPMLGraphQL، يمكنك أيضًا الاستعلام عن مقالات فردية بأي لغة باستخدام معرّف المقالة أو الجزء المعرِّف للعنوان.

على سبيل المثال، إذا كانت لديك مقالة بعنوان ¡Hola mundo! (الترجمة الإسبانية لـ Hello world!)، وبجزء مُعرِّف للعنوان hola-mundo ومعرّف مقالة 2، فيمكنك استخدام الاستعلامات التالية لاسترجاع المقالة:

query PostBySlug {
  post(id: "hola-mundo", idType: SLUG) {
  title
  slug
  uri
  }
}

query PostById {
  post(id: "2", idType: DATABASE_ID) {
  title
  slug
  uri
  }
}

سيُرجع كلا الاستعلامين بيانات المقالة بشكل صحيح، بما في ذلك العنوان والجزء المعرِّف للعنوان وURI، لمقالة ¡Hola mundo!:

{
  "data": {
  "post": {
  "title": "¡Hola mundo!",
  "slug": "hola-mundo",
  "uri": "/es/2018/07/05/hola-mundo/"
  }
  }
}

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

يوفّر WPML GraphQL استعلامين للوصول إلى بيانات اللغات المثبّتة على موقعك:

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

قد تكون هذه الاستعلامات مفيدة إذا كنت ترغب في بناء ميزات مثل مُبدّل اللغة.

على سبيل المثال، للحصول على بيانات جميع اللغات المثبتة، يمكنك تشغيل الاستعلام التالي:

query Languages {
  languages {
  code
  country_flag_url
  default_locale
  native_name
  translated_name
  url
  }
}

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

{
  "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 مع ACF

إذا كنت تستخدم WPGraphQL مع إضافة ACF، فإن WPML GraphQL وإضافات ACFML (ACF Multilingual) توسّع هذه الوظائف. يتيح لك ذلك الاستعلام عن بيانات الحقول المخصصة بلغات مختلفة.

يعرض WPGraphQL مع امتداد ACF صفحات خيارات ACF ككائنات جذر. ومعًا، يضيف كل من WPML GraphQL وإضافات ACFML مُعامِل لغة إلى استعلامات صفحة الخيارات، مع توقّع رمز لغة يطابق إحدى اللغات النشطة على موقعك (مثل “de” و”pt-pt”). يتيح لك ذلك الاستعلام عن البيانات بلغة محددة:

query NewQuery {
  myOptionPage(language: "de") {
  addressFieldGroup {
  addressTitle
  repeaterAddressDetails {
  addressDetails
  }
  }
  }
}

ابدأ باستخدام WPML GraphQL

لاستخدام WPML GraphQL، تحتاج إلى خطة WPML Multilingual CMS أو WPML Multilingual Agency. توفّر كلتا الخطتين إمكانية الوصول إلى إضافة WPML ومجموعة واسعة من الإضافات الإضافية، وكلها مشمولة دون أي تكلفة إضافية.

اطّلع على الخطة الأنسب لموقعك.

هل تحتاج إلى مساعدة؟

إذا واجهت مشكلة في استخدام WPML GraphQL، فزُر صفحة المشكلات المعروفة والحلول للحصول على نصائح لاستكشاف الأخطاء وإصلاحها.

هل ما زلت بحاجة إلى مساعدة؟ أرسل تذكرة دعم.

تم التحديث
6 مايو، 2026