في هذه الصفحة
ماذا يمكنك أن تفعل باستخدام WPML GraphQL؟
الاستعلام عن معلومات اللغة والترجمة
الاستعلام عن مقالات محددة عبر اللغات
الاستعلام عن البيانات من اللغات المثبتة
Home » وثائق WPML » مشاريع ذات صلة »
في هذه الصفحة
ماذا يمكنك أن تفعل باستخدام WPML GraphQL؟
الاستعلام عن معلومات اللغة والترجمة
الاستعلام عن مقالات محددة عبر اللغات
الاستعلام عن البيانات من اللغات المثبتة
للبدء، قم بتثبيت وتفعيل الإضافات التالية:
لتضمين حقول تعدد اللغات من إضافة ACF في مخطط WPGraphQL، ثبّت أيضًا:
يتكامل WPML GraphQL مع WPGraphQL ليتيح لك الاستعلام عن المحتوى متعدد اللغات الذي تم إنشاؤه باستخدام WPML.
من GraphQL → GraphQL IDE، يمكنك استخدام مُلحِّن الاستعلام من أجل:
على سبيل المثال، كما تُظهر الصورة أدناه، يمكنك بسهولة عرض قائمة بجميع المقالات على موقعك، مع رموز اللغات والأجزاء المعرِّفة للعناوين وURI والتفاصيل الخاصة بترجماتها.
فيما يلي، سنستخدم موقع اختبار متعدد اللغات لنعرض لك كيفية استخدام 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 من أجل:
يدعم 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 استعلامين للوصول إلى بيانات اللغات المثبّتة على موقعك:
قد تكون هذه الاستعلامات مفيدة إذا كنت ترغب في بناء ميزات مثل مُبدّل اللغة.
على سبيل المثال، للحصول على بيانات جميع اللغات المثبتة، يمكنك تشغيل الاستعلام التالي:
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/"
}
]
}
}
إذا كنت تستخدم 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 Multilingual CMS أو WPML Multilingual Agency. توفّر كلتا الخطتين إمكانية الوصول إلى إضافة WPML ومجموعة واسعة من الإضافات الإضافية، وكلها مشمولة دون أي تكلفة إضافية.
اطّلع على الخطة الأنسب لموقعك.
إذا واجهت مشكلة في استخدام WPML GraphQL، فزُر صفحة المشكلات المعروفة والحلول للحصول على نصائح لاستكشاف الأخطاء وإصلاحها.
هل ما زلت بحاجة إلى مساعدة؟ أرسل تذكرة دعم.