في هذه الصفحة
- المكونات الإضافية المطلوبة
- ماذا يمكنك أن تفعل مع WPML GraphQL?
- الاستعلام عن معلومات اللغة والترجمة
- تصفية اللغة
- الاستعلام عن مشاركات محددة عبر اللغات
- الاستعلام عن البيانات من اللغات المثبتة
- باستخدام WPML GraphQL مع غاتسبي و ACF
- ابدأ بـ WPML GraphQL
- هل تحتاج إلى مساعدة؟
المكونات الإضافية المطلوبة
للبدء، قم بتثبيت وتفعيل المكونات الإضافية التالية:
- WPGraphQL
- WPML
- WPML String Translation
- WPML GraphQL
لتضمين حقول متعددة اللغات من المكون الإضافي ACF في مخطط WPGraphQL، قم أيضًا بتثبيت
- Advanced Custom Fields Multilingual (ACFML)
- WPGraphQL ل Advanced Custom Fields
ماذا يمكنك أن تفعل مع WPML GraphQL?
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/"
}
]
}
}
باستخدام WPML GraphQL مع غاتسبي و ACF
يتيح لك 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 GraphQLفإنك تحتاج إلى WPML Multilingual CMS أو WPML Multilingual Agency خطة. توفر كلتا الخطتين إمكانية الوصول إلى المكوّن الإضافي WPML ومجموعة كبيرة من الإضافات الإضافية، وكلها مضمنة بدون رسوم إضافية.
تعرّف على الخطة الأفضل لموقعك.
هل تحتاج إلى مساعدة؟
إذا كنت تواجه مشكلة في استخدام WPML GraphQLقم بزيارة صفحة المشكلات المعروفة والحلول الخاصة بنا للحصول على نصائح حول استكشاف الأخطاء وإصلاحها.
هل ما زلت بحاجة إلى مساعدة؟ أرسل تذكرة دعم.