في هذه الصفحة
ماذا يمكنك أن تفعل مع WPML GraphQL?
الاستعلام عن معلومات اللغة والترجمة
الاستعلام عن مشاركات محددة عبر اللغات
الاستعلام عن البيانات من اللغات المثبتة
Home » وثائق WPML » مشاريع ذات صلة »
في هذه الصفحة
ماذا يمكنك أن تفعل مع WPML GraphQL?
الاستعلام عن معلومات اللغة والترجمة
الاستعلام عن مشاركات محددة عبر اللغات
الاستعلام عن البيانات من اللغات المثبتة
إن WPML GraphQL غير متوافق مع WPGraphQL 2.0 في الوقت الحالي. نحن نعمل بنشاط على تحقيق التوافق وسنقوم بالتحديث عندما يكون ذلك متاحًا.
للبدء، قم بتثبيت وتفعيل المكونات الإضافية التالية:
لتضمين حقول متعددة اللغات من المكون الإضافي ACF في مخطط WPGraphQL، قم أيضًا بتثبيت
WPML GraphQL يتكامل مع WPGraphQL للسماح لك بالاستعلام عن المحتوى متعدد اللغات الذي تم إنشاؤه باستخدام WPML.
من GraphQL → GraphQL IDE، يمكنك استخدام مُلحِّن الاستعلام من أجل:
على سبيل المثال، كما هو موضح في الصورة أدناه، يمكنك بسهولة سحب قائمة بجميع المنشورات على موقعك، مع استكمال رموز لغاتها، والروابط، وعناوين عناوين URL، وتفاصيل ترجماتها.
فيما يلي، سنستخدم أدناه موقع اختبار متعدد اللغات لنوضح لك كيفية استخدام WPML GraphQL للاستعلام عن المحتوى وترجماته.
مع WPML GraphQLيمكنك استخدام حقلي اللغة والترجمة في استفساراتك:
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 يتيح لك استخدام فلتر اللغة لـ
WPML GraphQL يدعم الروابط، لذا عندما تقوم بتصفية عنصر من المستوى الأعلى مثل منشور حسب اللغة، فإن جميع العناصر ذات الصلة، مثل الفئات والوسوم، ستتبع تلقائيًا نفس اللغة. هذا يجعل استفساراتك متسقة ودقيقة.
فيما يلي مثال على استعلام يسترجع المنشورات باللغة الإسبانية، بما في ذلك الرخويات وURIs والفئات المتصلة بها:
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! (الترجمة الإسبانية لـ مرحبًا بالعالم!)، مع سبيكة هولا موندو ومعرف المقالة 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/"
}
]
}
}
يتيح لك Gatsby إمكانية الحصول على البيانات من WordPress ، وباستخدام WPML GraphQLيمكنك تقديم محتوى متعدد اللغات وبيانات خاصة باللغات إلى موقع Gatsby الخاص بك.
إذا كنت تستخدم WP GraphQL مع المكون الإضافي ACF, WPML GraphQL و ACF متعدد اللغات لتوسيع هذه الوظيفة، مما يتيح لك الاستعلام عن بيانات الحقل المخصص بلغات مختلفة.
على سبيل المثال، لنفترض أن لديك تثبيت Gatsby مع حزمة الوظيفة الإضافيةgatsby-source-graphql، وموقعك WordPress يحتوي على WPML (مع تثبيت اللغة الإسبانية كلغة ثانوية) و ACF.
يمكنك استرداد المنشورات متعددة اللغات بعناوينها، ورموز لغاتها، وحقول ACF المخصصة في Gatsby باستخدام استعلام GraphQL بسيط.
export const doQuery = graphql`
{
wordpress {
posts(where: {language: "en"}) {
nodes {
title
language {
code
}
postfields{
subtitle
}
translations {
title
language {
code
}
postfields{
subtitle
}
}
}
}
}
}
`;
لاستخدام WPML GraphQLفإنك تحتاج إلى WPML Multilingual CMS أو WPML Multilingual Agency خطة. توفر كلتا الخطتين إمكانية الوصول إلى المكوّن الإضافي WPML ومجموعة كبيرة من الإضافات الإضافية، وكلها مضمنة بدون رسوم إضافية.
تعرّف على الخطة الأفضل لموقعك.
إذا كنت تواجه مشكلة في استخدام WPML GraphQLقم بزيارة صفحة المشكلات المعروفة والحلول الخاصة بنا للحصول على نصائح حول استكشاف الأخطاء وإصلاحها.
هل ما زلت بحاجة إلى مساعدة؟ أرسل تذكرة دعم.